Onlinestar Company Marketing Analysis Project¶
Exploring the data¶
Segment --> Customer segment¶
campaignstartdate --> tare5 bad2 el 7amla el tswekia (campaign)¶
campaignenddate --> tare5 entha2 el 7amla el tswekia (campaign)¶
3amod el campaignstartdate wel campaignenddatee h3rf menhom el duaration y3ni el modda eli fdelt feha el 7mla el tskewia (campaign) bt3ty 43'ala¶
campaign --> da esm el 7amla el tskewia (campaign)¶
progress --> el campaign progress bta3et el 7amla el tswekia (campaign)¶
STATUS --> da el campaign status¶
contacted --> de m3naha tam el twasol wla la2¶
conversion --> if 1 the contract was signed y3ni law 1 yeb2a el 3a2d etmda law 0 yeb2a la2 mtmda4¶
REJECTIONREASON --> shows why the dealer rejected the offer y3ni b3rf menha sbab rafd el 3amel lel offer¶
SELLID --> ClientID¶
ACCOUNTSTATUS --> shows current customer status y3ni 7alet el 3amel¶
Classified --> anwa3 el 3rbiat¶
Sub name --> eli bi3ber 3n no3 el 3rbya¶
Sub startdate --> contract start date y3ni tare5 bad2 el tfawod¶
Sub close date --> contract close date y3ni tare5 entha2 el tfawod¶
y3ni mslan law 3amod el Sub startdate kan 12/6/2024 we 3amod el Sub close date kan 20/6/2024 da m3nah en homa bd2o tfawod yom 12/6/2024 wel 3a2d etmada aw 7aslo cancelation aw aian kan 7alet el offer yom 20/6/2024 fa da m3nah enhom fedlo 8 aiam fel tfawod¶
CONTRACTSTATUS_M0 l7ad CONTRACTSTATUS_M12 --> da 7alet el 3a2d fe kol 4ahr men awel 4ahr wa7ed l7ad 4ahr 12 we da bi3rfny kam 3amel fedl mot3aked we kam 3amel fas5 el3a2d fe 4ahr mo3ian¶
LISTINGSM0 l7ad LISTINGSM14 --> da bi3rfny fe kam 3rbia mwgoda 3ndy fel entzar fel m3rad le modet 14 4ahr y3ni men awel el 4ahr el awel l7ad el 4ahr el 14 bel nesba le kol 3amel wa5ed meni franchise¶
Classified Rev M0 l7ad Classified Rev M14 --> el arba7 b3d el 5asm¶
Classified UndisRev M0 l7ad Classified UndisRev M14 --> el arba7 abl el 5asm¶
3amod el Classified Rev M0 we 3amod el Classified UndisRev M0 bi3rfony el 5asm nafso ad a fe kol 4ah¶
import numpy as np --> de mktba btost5dam fe 3lom el bianat we btet2sem le klmten "Number" & "Python", fa hia btet3amel ma3 el arkam b4akl kber¶
import pandas as pd --> de mktba btost5dam lel3amol ma3 le bianat zy tandef el bianat (Cleaning Data) wel t3del 3al bianat (Data Manipulation ) we t7lel el bianat (Analysing data) we kman btost5dam fel Visualization bs mesh b4akl kway 34na keda lma hagy a3mel visualization hts5dem el mktba plotly.express.¶
import plotly.express as px --> de mktba btost5dam 34an a3rf arsem charts (Visualizations)¶
import numpy as np
import pandas as pd
import plotly.express as px
ana hena b3mel install lel mktba bta3et el tware5 wel w2t¶
pip install datetime
Requirement already satisfied: datetime in c:\users\mazen sabry\anaconda3\lib\site-packages (5.5) Requirement already satisfied: zope.interface in c:\users\mazen sabry\anaconda3\lib\site-packages (from datetime) (5.4.0) Requirement already satisfied: pytz in c:\users\mazen sabry\anaconda3\lib\site-packages (from datetime) (2023.3.post1) Requirement already satisfied: setuptools in c:\users\mazen sabry\anaconda3\lib\site-packages (from zope.interface->datetime) (68.2.2) Note: you may need to restart the kernel to use updated packages.
ana hena bstad3y mktbet el tware5 wel w2t eli ana lesa 3amelha install¶
import datetime as dt
ana hena 3amlt mot3'ier esmo data 7atet gwah el mlaf eli esmo "Cohort Tracking Campaign" eli gwa el excel sheet eli esmo "Onlinestar Company Marketing Analysis"¶
data=pd.read_excel("E:/E/Data Analysis Courses/Ahmed Ali Data Analysis Diploma/6- Python Sessions/Projects/41th Session/Onlinestar Company Marketing Analysis.xlsx",sheet_name='Cohort Tracking Campaign')
data
| SEGMENT | campaignstartdate | campaignenddate | campaign | progress | STATUS | contacted | conversion | cr2 basis | REJECTIONREASON | ... | Classified Rev M10 | Classified UndisRev M10 | Classified Rev M11 | Classified UndisRev M11 | Classified Rev M12 | Classified UndisRev M12 | Classified Rev M13 | Classified UndisRev M13 | Classified Rev M14 | Classified UndisRev M14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 |
| 1 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 2 | Small Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 |
| 3 | Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 4 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90155 | Independent Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90156 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90157 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90158 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | Export Business | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
90159 rows × 77 columns
info() : de function bt3rfny el data types eli mwgoda fe kol 3amod fa hena by2ol mslan en 3amod el SEGMENT feh 89823 saf non-null y3ni mesh fady we no3o object wel object da y3ni ay kema mesh 3dadeya y3ni text we 3amod el conversion feh 90159 saf non-null bardo y3ni mesh fady we no3o int64 wel int64 da y3ni kema 3dadeya laken law kan int32 yeb2a fady we kol 3wamed el tware5 eli homa campaignstartdate & campaignenddate & Sub close date & Sub startdate no3hhom datetime64 y3ni mzboten¶
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 90159 entries, 0 to 90158 Data columns (total 77 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 SEGMENT 89823 non-null object 1 campaignstartdate 90159 non-null datetime64[ns] 2 campaignenddate 90159 non-null datetime64[ns] 3 campaign 90159 non-null object 4 progress 90159 non-null object 5 STATUS 90159 non-null object 6 contacted 90159 non-null int64 7 conversion 90159 non-null int64 8 cr2 basis 90159 non-null int64 9 REJECTIONREASON 41593 non-null object 10 SELLID 90159 non-null int64 11 ACCOUNTSTATUS 90159 non-null object 12 Classified 7016 non-null object 13 Sub name 7016 non-null object 14 Sub close date 7012 non-null datetime64[ns] 15 Sub startdate 7016 non-null datetime64[ns] 16 CONTRACTSTATUS_M1 7020 non-null float64 17 CONTRACTSTATUS_M2 7020 non-null float64 18 CONTRACTSTATUS_M3 7020 non-null float64 19 CONTRACTSTATUS_M4 7020 non-null float64 20 CONTRACTSTATUS_M5 7020 non-null float64 21 CONTRACTSTATUS_M6 7020 non-null float64 22 CONTRACTSTATUS_M7 7020 non-null float64 23 CONTRACTSTATUS_M8 7020 non-null float64 24 CONTRACTSTATUS_M9 7020 non-null float64 25 CONTRACTSTATUS_M10 7020 non-null float64 26 CONTRACTSTATUS_M11 7020 non-null float64 27 CONTRACTSTATUS_M12 7020 non-null float64 28 LISTINGSM0 4751 non-null float64 29 LISTINGSM1 5007 non-null float64 30 LISTINGSM2 4691 non-null float64 31 LISTINGSM3 4098 non-null float64 32 LISTINGSM4 3626 non-null float64 33 LISTINGSM5 3377 non-null float64 34 LISTINGSM6 3078 non-null float64 35 LISTINGSM7 2888 non-null float64 36 LISTINGSM8 2708 non-null float64 37 LISTINGSM9 2490 non-null float64 38 LISTINGSM10 2120 non-null float64 39 LISTINGSM11 1930 non-null float64 40 LISTINGSM12 1754 non-null float64 41 LISTINGSM13 1521 non-null float64 42 LISTINGSM14 1354 non-null float64 43 VEHICLES_YESTERDAY 10163 non-null float64 44 VEHICLES_LAST7DAYS 10163 non-null float64 45 AVG_VEHICLES_LAST_MONTH 10163 non-null float64 46 AVG_VEHICLES_THIS_MONTH 10163 non-null float64 47 Classified Rev M0 6763 non-null float64 48 Classified UndisRev M0 6763 non-null float64 49 Classified Rev M1 6230 non-null float64 50 Classified UndisRev M1 6230 non-null float64 51 Classified Rev M2 5596 non-null float64 52 Classified UndisRev M2 5596 non-null float64 53 Classified Rev M3 4806 non-null float64 54 Classified UndisRev M3 4806 non-null float64 55 Classified Rev M4 4180 non-null float64 56 Classified UndisRev M4 4180 non-null float64 57 Classified Rev M5 3782 non-null float64 58 Classified UndisRev M5 3782 non-null float64 59 Classified Rev M6 3378 non-null float64 60 Classified UndisRev M6 3378 non-null float64 61 Classified Rev M7 3123 non-null float64 62 Classified UndisRev M7 3123 non-null float64 63 Classified Rev M8 2893 non-null float64 64 Classified UndisRev M8 2893 non-null float64 65 Classified Rev M9 2637 non-null float64 66 Classified UndisRev M9 2637 non-null float64 67 Classified Rev M10 2242 non-null float64 68 Classified UndisRev M10 2242 non-null float64 69 Classified Rev M11 2052 non-null float64 70 Classified UndisRev M11 2052 non-null float64 71 Classified Rev M12 1852 non-null float64 72 Classified UndisRev M12 1852 non-null float64 73 Classified Rev M13 1654 non-null float64 74 Classified UndisRev M13 1654 non-null float64 75 Classified Rev M14 1485 non-null float64 76 Classified UndisRev M14 1485 non-null float64 dtypes: datetime64[ns](4), float64(61), int64(4), object(8) memory usage: 53.0+ MB
isnull().sum() : de function bst5dmha 34an ageb 3dad el nulls fe kol 3amod, fa higebli hena mslan 3amod el "Classified UndisRev M12" feh 88307 null we aslun 3dad el sfof fel gdwal el asli 90159 y3ni fe 1852 saf bs eli mesh fady y3ni mesh nulls fa MESH s7 eni a3mel drop lel nulls 34an h5ser talt terb3 el data bt3ty¶
data.isnull().sum()
SEGMENT 336
campaignstartdate 0
campaignenddate 0
campaign 0
progress 0
...
Classified UndisRev M12 88307
Classified Rev M13 88505
Classified UndisRev M13 88505
Classified Rev M14 88674
Classified UndisRev M14 88674
Length: 77, dtype: int64
ana hena 3amlt 3amod gded esmo Campaign_Duration feh el timedelta y3ni el fatra el zmnia ben tare5en y3ni hena el moda el fedlt feha el 7amla el e3lania bt3ty 43'ala fa tart7t 3amod entha2 el 7amal el e3lania men tare5 bad2 el 7amla el e3lania wel nateg hytla3 bel aiam¶
data['Campaign_Duration']=(data['campaignenddate']-data['campaignstartdate'])
data['Campaign_Duration']
0 66 days
1 66 days
2 66 days
3 66 days
4 66 days
...
90154 21 days
90155 21 days
90156 21 days
90157 21 days
90158 21 days
Name: Campaign_Duration, Length: 90159, dtype: timedelta64[ns]
ana hena est5demt el function info() 34an a4of el data type bta3 3amod el Campaign_Duration la2eto timedelta64 we da tabe3y gedan la2o nateg tar7 3amoden no3hom timedelta64¶
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 90159 entries, 0 to 90158 Data columns (total 78 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 SEGMENT 89823 non-null object 1 campaignstartdate 90159 non-null datetime64[ns] 2 campaignenddate 90159 non-null datetime64[ns] 3 campaign 90159 non-null object 4 progress 90159 non-null object 5 STATUS 90159 non-null object 6 contacted 90159 non-null int64 7 conversion 90159 non-null int64 8 cr2 basis 90159 non-null int64 9 REJECTIONREASON 41593 non-null object 10 SELLID 90159 non-null int64 11 ACCOUNTSTATUS 90159 non-null object 12 Classified 7016 non-null object 13 Sub name 7016 non-null object 14 Sub close date 7012 non-null datetime64[ns] 15 Sub startdate 7016 non-null datetime64[ns] 16 CONTRACTSTATUS_M1 7020 non-null float64 17 CONTRACTSTATUS_M2 7020 non-null float64 18 CONTRACTSTATUS_M3 7020 non-null float64 19 CONTRACTSTATUS_M4 7020 non-null float64 20 CONTRACTSTATUS_M5 7020 non-null float64 21 CONTRACTSTATUS_M6 7020 non-null float64 22 CONTRACTSTATUS_M7 7020 non-null float64 23 CONTRACTSTATUS_M8 7020 non-null float64 24 CONTRACTSTATUS_M9 7020 non-null float64 25 CONTRACTSTATUS_M10 7020 non-null float64 26 CONTRACTSTATUS_M11 7020 non-null float64 27 CONTRACTSTATUS_M12 7020 non-null float64 28 LISTINGSM0 4751 non-null float64 29 LISTINGSM1 5007 non-null float64 30 LISTINGSM2 4691 non-null float64 31 LISTINGSM3 4098 non-null float64 32 LISTINGSM4 3626 non-null float64 33 LISTINGSM5 3377 non-null float64 34 LISTINGSM6 3078 non-null float64 35 LISTINGSM7 2888 non-null float64 36 LISTINGSM8 2708 non-null float64 37 LISTINGSM9 2490 non-null float64 38 LISTINGSM10 2120 non-null float64 39 LISTINGSM11 1930 non-null float64 40 LISTINGSM12 1754 non-null float64 41 LISTINGSM13 1521 non-null float64 42 LISTINGSM14 1354 non-null float64 43 VEHICLES_YESTERDAY 10163 non-null float64 44 VEHICLES_LAST7DAYS 10163 non-null float64 45 AVG_VEHICLES_LAST_MONTH 10163 non-null float64 46 AVG_VEHICLES_THIS_MONTH 10163 non-null float64 47 Classified Rev M0 6763 non-null float64 48 Classified UndisRev M0 6763 non-null float64 49 Classified Rev M1 6230 non-null float64 50 Classified UndisRev M1 6230 non-null float64 51 Classified Rev M2 5596 non-null float64 52 Classified UndisRev M2 5596 non-null float64 53 Classified Rev M3 4806 non-null float64 54 Classified UndisRev M3 4806 non-null float64 55 Classified Rev M4 4180 non-null float64 56 Classified UndisRev M4 4180 non-null float64 57 Classified Rev M5 3782 non-null float64 58 Classified UndisRev M5 3782 non-null float64 59 Classified Rev M6 3378 non-null float64 60 Classified UndisRev M6 3378 non-null float64 61 Classified Rev M7 3123 non-null float64 62 Classified UndisRev M7 3123 non-null float64 63 Classified Rev M8 2893 non-null float64 64 Classified UndisRev M8 2893 non-null float64 65 Classified Rev M9 2637 non-null float64 66 Classified UndisRev M9 2637 non-null float64 67 Classified Rev M10 2242 non-null float64 68 Classified UndisRev M10 2242 non-null float64 69 Classified Rev M11 2052 non-null float64 70 Classified UndisRev M11 2052 non-null float64 71 Classified Rev M12 1852 non-null float64 72 Classified UndisRev M12 1852 non-null float64 73 Classified Rev M13 1654 non-null float64 74 Classified UndisRev M13 1654 non-null float64 75 Classified Rev M14 1485 non-null float64 76 Classified UndisRev M14 1485 non-null float64 77 Campaign_Duration 90159 non-null timedelta64[ns] dtypes: datetime64[ns](4), float64(61), int64(4), object(8), timedelta64[ns](1) memory usage: 53.7+ MB
dt.days --> de btemsa7 ay nus fel 3amod we btseb el rakm bs we bet5ali no3 el 3amod numeric y3ni rakmy akeni 3amlt keda .astype(int64)¶
data['Campaign_Duration']=(data['campaignenddate']-data['campaignstartdate']).dt.days
data['Campaign_Duration']
0 66
1 66
2 66
3 66
4 66
..
90154 21
90155 21
90156 21
90157 21
90158 21
Name: Campaign_Duration, Length: 90159, dtype: int64
ana hena est5demt el function info() 34an a4of el data type bta3 3amod el Campaign_Duration la2eto f3lan b2a numeric y3ni rakmi¶
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 90159 entries, 0 to 90158 Data columns (total 78 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 SEGMENT 89823 non-null object 1 campaignstartdate 90159 non-null datetime64[ns] 2 campaignenddate 90159 non-null datetime64[ns] 3 campaign 90159 non-null object 4 progress 90159 non-null object 5 STATUS 90159 non-null object 6 contacted 90159 non-null int64 7 conversion 90159 non-null int64 8 cr2 basis 90159 non-null int64 9 REJECTIONREASON 41593 non-null object 10 SELLID 90159 non-null int64 11 ACCOUNTSTATUS 90159 non-null object 12 Classified 7016 non-null object 13 Sub name 7016 non-null object 14 Sub close date 7012 non-null datetime64[ns] 15 Sub startdate 7016 non-null datetime64[ns] 16 CONTRACTSTATUS_M1 7020 non-null float64 17 CONTRACTSTATUS_M2 7020 non-null float64 18 CONTRACTSTATUS_M3 7020 non-null float64 19 CONTRACTSTATUS_M4 7020 non-null float64 20 CONTRACTSTATUS_M5 7020 non-null float64 21 CONTRACTSTATUS_M6 7020 non-null float64 22 CONTRACTSTATUS_M7 7020 non-null float64 23 CONTRACTSTATUS_M8 7020 non-null float64 24 CONTRACTSTATUS_M9 7020 non-null float64 25 CONTRACTSTATUS_M10 7020 non-null float64 26 CONTRACTSTATUS_M11 7020 non-null float64 27 CONTRACTSTATUS_M12 7020 non-null float64 28 LISTINGSM0 4751 non-null float64 29 LISTINGSM1 5007 non-null float64 30 LISTINGSM2 4691 non-null float64 31 LISTINGSM3 4098 non-null float64 32 LISTINGSM4 3626 non-null float64 33 LISTINGSM5 3377 non-null float64 34 LISTINGSM6 3078 non-null float64 35 LISTINGSM7 2888 non-null float64 36 LISTINGSM8 2708 non-null float64 37 LISTINGSM9 2490 non-null float64 38 LISTINGSM10 2120 non-null float64 39 LISTINGSM11 1930 non-null float64 40 LISTINGSM12 1754 non-null float64 41 LISTINGSM13 1521 non-null float64 42 LISTINGSM14 1354 non-null float64 43 VEHICLES_YESTERDAY 10163 non-null float64 44 VEHICLES_LAST7DAYS 10163 non-null float64 45 AVG_VEHICLES_LAST_MONTH 10163 non-null float64 46 AVG_VEHICLES_THIS_MONTH 10163 non-null float64 47 Classified Rev M0 6763 non-null float64 48 Classified UndisRev M0 6763 non-null float64 49 Classified Rev M1 6230 non-null float64 50 Classified UndisRev M1 6230 non-null float64 51 Classified Rev M2 5596 non-null float64 52 Classified UndisRev M2 5596 non-null float64 53 Classified Rev M3 4806 non-null float64 54 Classified UndisRev M3 4806 non-null float64 55 Classified Rev M4 4180 non-null float64 56 Classified UndisRev M4 4180 non-null float64 57 Classified Rev M5 3782 non-null float64 58 Classified UndisRev M5 3782 non-null float64 59 Classified Rev M6 3378 non-null float64 60 Classified UndisRev M6 3378 non-null float64 61 Classified Rev M7 3123 non-null float64 62 Classified UndisRev M7 3123 non-null float64 63 Classified Rev M8 2893 non-null float64 64 Classified UndisRev M8 2893 non-null float64 65 Classified Rev M9 2637 non-null float64 66 Classified UndisRev M9 2637 non-null float64 67 Classified Rev M10 2242 non-null float64 68 Classified UndisRev M10 2242 non-null float64 69 Classified Rev M11 2052 non-null float64 70 Classified UndisRev M11 2052 non-null float64 71 Classified Rev M12 1852 non-null float64 72 Classified UndisRev M12 1852 non-null float64 73 Classified Rev M13 1654 non-null float64 74 Classified UndisRev M13 1654 non-null float64 75 Classified Rev M14 1485 non-null float64 76 Classified UndisRev M14 1485 non-null float64 77 Campaign_Duration 90159 non-null int64 dtypes: datetime64[ns](4), float64(61), int64(5), object(8) memory usage: 53.7+ MB
ana hena tab3t el mot3'ier data 34an a4of f3lan el 3amod el gded bta3 el Campaign_Duration et3aml wla la2 hla2eh f3lan mwgod fel 2a5er¶
data
| SEGMENT | campaignstartdate | campaignenddate | campaign | progress | STATUS | contacted | conversion | cr2 basis | REJECTIONREASON | ... | Classified UndisRev M10 | Classified Rev M11 | Classified UndisRev M11 | Classified Rev M12 | Classified UndisRev M12 | Classified Rev M13 | Classified UndisRev M13 | Classified Rev M14 | Classified UndisRev M14 | Campaign_Duration | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 66 |
| 1 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 66 |
| 2 | Small Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 66 |
| 3 | Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 66 |
| 4 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 | 66 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 |
| 90155 | Independent Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 |
| 90156 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 |
| 90157 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 |
| 90158 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | Export Business | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 |
90159 rows × 78 columns
1- What are the top 15 campaign duo to duaration ?¶
ana hena 3awez ageb akber 15 7mla e3lana mn 7es el moda el e3lania y3ni men 7es el duaration fa el mnteki eni hst5dem el function nlargest le 3amod el Campaign_Duration eli ana gebto eli hwa kan nateg tar7 3amod el campaignenddate men 3amod el campaignstartdate bs lma 3amlt keda l2et en fe 7mlat e3lania mokrara fa el s7 eni ageb el unique bt3hom fa hst5dem el function groupby ma3 el function sum() le 3amod el campaign ma3 3amod el Campaign_Duration¶
nlargest() : de function bst5demha law 3awez ageb akber 3dad mo3ian men 3amod mo3ian we de bta5od parameter wa7ed eli hwa el3dad eli 3wzo aw bta5od 2 parameters awel parameter el 3dad we tany parameter esm el 3amod eli 3awez ageb meno akber 3dad¶
nlargest(15,'Campaign_Duration') : hena ba2olo hatli akber 15 ftrat fedlet feha el 7amal el e3lania bt3ty 43'ala bs law get rkezt keda hla2y en fehom campaign kter mokraren fa ana keda magebt4 akber 15 ana gebt akber 3 fa hst5dem el groupby 34an ageb el data eli ana 3awezha bdon tekrar y3ni unique¶
data.nlargest(15,'Campaign_Duration')
| SEGMENT | campaignstartdate | campaignenddate | campaign | progress | STATUS | contacted | conversion | cr2 basis | REJECTIONREASON | ... | Classified UndisRev M10 | Classified Rev M11 | Classified UndisRev M11 | Classified Rev M12 | Classified UndisRev M12 | Classified Rev M13 | Classified UndisRev M13 | Classified Rev M14 | Classified UndisRev M14 | Campaign_Duration | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 27171 | Bull Accounts | 2020-06-29 | 2021-07-10 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 1 untouched | To Be Handled | 0 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 376 |
| 83788 | Independent Dealers | 2021-01-04 | 2021-12-31 | Web Registration_DE_VM_2021 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 361 |
| 83789 | Independent Dealers | 2021-01-04 | 2021-12-31 | Web Registration_DE_VM_2021 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 361 |
| 83790 | Independent Dealers | 2021-01-04 | 2021-12-31 | Web Registration_DE_VM_2021 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 361 |
| 83791 | Independent Dealers | 2021-01-04 | 2021-12-31 | Web Registration_DE_VM_2021 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 361 |
| 28568 | Franchised Dealers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 82.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 128 |
| 28569 | Large Independent Dealers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 134.0 | 130.0 | 130.0 | 128.0 | 128.0 | NaN | NaN | NaN | NaN | 128 |
| 28570 | Franchised Dealers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | No Interest | ... | 122.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 128 |
| 28571 | Franchised Dealers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 166.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 128 |
| 28572 | Large Independent Dealers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 294.0 | 294.0 | 294.0 | 274.0 | 274.0 | NaN | NaN | NaN | NaN | 128 |
| 28573 | NaN | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 128 |
| 28574 | Franchised Dealers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 146.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 128 |
| 28575 | OTP Optimizers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 50.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 128 |
| 28576 | OTP Optimizers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 128 |
| 28577 | Large Independent Dealers | 2020-10-26 | 2021-03-03 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 202.0 | 198.0 | 198.0 | 208.0 | 208.0 | NaN | NaN | NaN | NaN | 128 |
15 rows × 78 columns
AWEL TARE2A : 34an ageb akber 15 modad e3lania bdon tekrar y3ni akber 15 men 3amod el Campaign_Duration bdon tekrar 3amlt mot3'ier esmo Top15 7atet gwah mgmo3 kiam 3amod el Campaign_Duration ma3 3amod el campaign bst5dam el groupby ma3 el function max() b3d keda ast5demt el function nlargest() we 7atet gwaha 15 fa gabli akber 15¶
max() : de btgeb mgmo3 el kiam we lma bst5demha ma3 el groupby btgebli mgmo3 el kiam bdon tekrar¶
nlargest() : de bst5demha law 3awez ageb akber 3dad mo3ian men 3amod mo3ian¶
Top15=data['Campaign_Duration'].groupby(data['campaign']).max()
Top15
campaign
BKD_DE_VM_2008_Akquise 66
BKD_DE_VM_2009_Akquise 45
BKD_DE_VM_2010_Akquise 48
BKD_DE_VM_2010_Test_Samstag 26
BKD_DE_VM_2011_Akquise 49
..
Webhelp_DE_VM_2107_RMS Attack Schotterplatz Aquisition 27
Webhelp_DE_VM_2108_RMS Attack Independent Aquisition 21
Webhelp_DE_VM_2108_RMS Attack Independent Follow-up 21
Webhelp_DE_VM_2108_RMS Attack Schotterplatz Aquisition 21
Webhelp_DE_VM_2108_RMS Attack Schotterplatz Follow-up 21
Name: Campaign_Duration, Length: 197, dtype: int64
Top15=data.groupby('campaign')['Campaign_Duration'].max().nlargest(15)
Top15
campaign KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE 376 Web Registration_DE_VM_2021 361 KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 128 TS_DE_VM_1909_Akquise_KW39-40 98 TS_DE_VM_2007_Akquise 93 TS_DE_VM_1912_Akquise_KW51 92 TS_DE_VM_1907_Akquise_KW27 91 TS_DE_VM_2001_Akquise_KW2 88 TS_DE_VM_1910_Akquise_KW41 85 TS_DE_VM_1907_Akquise_KW28 84 TS_DE_VM_2005_Akquise 83 KAM_DE_VM_2008_Vollgas mit AutoScout24 81 TS_DE_VM_2007_Divide&Conquer_BW 81 TS_DE_VM_1910_Akquise_KW42 78 TS_DE_VM_2001_Akquise_KW3 78 Name: Campaign_Duration, dtype: int64
TANY TARE2A : 34an ageb akber 16 modad e3lania bdon tekrar y3ni akber 16 men 3amod el Campaign_Duration bdon tekrar 3amlt mot3'ier esmo Top16 7atet gwah mgmo3 kiam 3amod el Campaign_Duration ma3 3amod el campaign bst5dam el function groupby ma3 el function max() b3d keda 7atethom fe gdwal bst5dam el function reset_index() b3d keda rtebthom tnazoli men 7es 3amod el Campaign_Duration bst5dam el function sort_values() b3d keda gebt awel 16 bst5dam el function head()¶
max() : de btgeb mgmo3 el kiam we lma bst5demha ma3 el groupby btgebli mgmo3 el kiam bdon tekrar¶
reset_index() : de debd5al el data gwa gdwal¶
sort_values(by='esm el3amod',ascending=True) : de betrteb 3amod mo3ian tsa3ody law True we tnazoli law False laken mafe4 descending higebli error y3ni law 3awez artebo tnazoli h3mel ascending=False¶
head() : de btgeb awel 3dad mo3ian men el sfof y3ni law 2oltelo head(16) higeb awel 16 saf bs men el gadwal¶
Top16=data['Campaign_Duration'].groupby(data['campaign']).max().reset_index().sort_values(by='Campaign_Duration',ascending=False).head(16)
Top16
| campaign | Campaign_Duration | |
|---|---|---|
| 47 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 376 |
| 186 | Web Registration_DE_VM_2021 | 361 |
| 52 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 128 |
| 98 | TS_DE_VM_1909_Akquise_KW39-40 | 98 |
| 129 | TS_DE_VM_2007_Akquise | 93 |
| 110 | TS_DE_VM_1912_Akquise_KW51 | 92 |
| 84 | TS_DE_VM_1907_Akquise_KW27 | 91 |
| 111 | TS_DE_VM_2001_Akquise_KW2 | 88 |
| 99 | TS_DE_VM_1910_Akquise_KW41 | 85 |
| 85 | TS_DE_VM_1907_Akquise_KW28 | 84 |
| 127 | TS_DE_VM_2005_Akquise | 83 |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 81 |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 81 |
| 112 | TS_DE_VM_2001_Akquise_KW3 | 78 |
| 100 | TS_DE_VM_1910_Akquise_KW42 | 78 |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 77 |
Top16=data.groupby('campaign')['Campaign_Duration'].max().reset_index().sort_values(by='Campaign_Duration',ascending=False).head(16)
Top16
| campaign | Campaign_Duration | |
|---|---|---|
| 47 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 376 |
| 186 | Web Registration_DE_VM_2021 | 361 |
| 52 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 128 |
| 98 | TS_DE_VM_1909_Akquise_KW39-40 | 98 |
| 129 | TS_DE_VM_2007_Akquise | 93 |
| 110 | TS_DE_VM_1912_Akquise_KW51 | 92 |
| 84 | TS_DE_VM_1907_Akquise_KW27 | 91 |
| 111 | TS_DE_VM_2001_Akquise_KW2 | 88 |
| 99 | TS_DE_VM_1910_Akquise_KW41 | 85 |
| 85 | TS_DE_VM_1907_Akquise_KW28 | 84 |
| 127 | TS_DE_VM_2005_Akquise | 83 |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 81 |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 81 |
| 112 | TS_DE_VM_2001_Akquise_KW3 | 78 |
| 100 | TS_DE_VM_1910_Akquise_KW42 | 78 |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 77 |
ana hena est5demt el function info() 34an a4of el data type bta3 3amod el Campaign_Duration la2eto int64 y3ni numeric mzbot 34an ana 2a5er function mnfezha 3aleh kanet el dt.days eli btemsa7 ay nus fel 3amod we btseb el rakm bs akeni 3amlt keda .astype(int64)¶
Top16.info()
<class 'pandas.core.frame.DataFrame'> Index: 16 entries, 47 to 131 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 16 non-null object 1 Campaign_Duration 16 non-null int64 dtypes: int64(1), object(1) memory usage: 384.0+ bytes
ana hena rasmt column bar chart lel mot3'ier Top16 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Campaign_Duration we 5alet 3ard el chart 1300 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "Top 15 campaign duo to duaration"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh Top 15 campaign duo to duarationt¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1300¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(Top16,x='campaign',y='Campaign_Duration',text_auto='.2s',width=1300,height=600,title='Top 15 campaign duo to duaration')
TANY: ana hena 3amlt 3amod gded esmo Campaign_Duration feh el timedelta y3ni el fatra el zmnia ben tare5en y3ni hena el moda el fedlt feha el 7amla el e3lania bt3ty 43'ala fa tart7t 3amod entha2 el 7amal el e3lania men tare5 bad2 el 7amla el e3lania wel nateg hytla3 bel aiam¶
data['Campaign_Duration']=(data['campaignenddate']-data['campaignstartdate'])
data['Campaign_Duration']
0 66 days
1 66 days
2 66 days
3 66 days
4 66 days
...
90154 21 days
90155 21 days
90156 21 days
90157 21 days
90158 21 days
Name: Campaign_Duration, Length: 90159, dtype: timedelta64[ns]
ana hena est5demt el function info() 34an a4of el data type bta3 3amod el Campaign_Duration b3d mtr7t 3amod entha2 el 7amla men 3amod bad2 el 7amla la2eto tabe3y timedelta64¶
data.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 90159 entries, 0 to 90158 Data columns (total 78 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 SEGMENT 89823 non-null object 1 campaignstartdate 90159 non-null datetime64[ns] 2 campaignenddate 90159 non-null datetime64[ns] 3 campaign 90159 non-null object 4 progress 90159 non-null object 5 STATUS 90159 non-null object 6 contacted 90159 non-null int64 7 conversion 90159 non-null int64 8 cr2 basis 90159 non-null int64 9 REJECTIONREASON 41593 non-null object 10 SELLID 90159 non-null int64 11 ACCOUNTSTATUS 90159 non-null object 12 Classified 7016 non-null object 13 Sub name 7016 non-null object 14 Sub close date 7012 non-null datetime64[ns] 15 Sub startdate 7016 non-null datetime64[ns] 16 CONTRACTSTATUS_M1 7020 non-null float64 17 CONTRACTSTATUS_M2 7020 non-null float64 18 CONTRACTSTATUS_M3 7020 non-null float64 19 CONTRACTSTATUS_M4 7020 non-null float64 20 CONTRACTSTATUS_M5 7020 non-null float64 21 CONTRACTSTATUS_M6 7020 non-null float64 22 CONTRACTSTATUS_M7 7020 non-null float64 23 CONTRACTSTATUS_M8 7020 non-null float64 24 CONTRACTSTATUS_M9 7020 non-null float64 25 CONTRACTSTATUS_M10 7020 non-null float64 26 CONTRACTSTATUS_M11 7020 non-null float64 27 CONTRACTSTATUS_M12 7020 non-null float64 28 LISTINGSM0 4751 non-null float64 29 LISTINGSM1 5007 non-null float64 30 LISTINGSM2 4691 non-null float64 31 LISTINGSM3 4098 non-null float64 32 LISTINGSM4 3626 non-null float64 33 LISTINGSM5 3377 non-null float64 34 LISTINGSM6 3078 non-null float64 35 LISTINGSM7 2888 non-null float64 36 LISTINGSM8 2708 non-null float64 37 LISTINGSM9 2490 non-null float64 38 LISTINGSM10 2120 non-null float64 39 LISTINGSM11 1930 non-null float64 40 LISTINGSM12 1754 non-null float64 41 LISTINGSM13 1521 non-null float64 42 LISTINGSM14 1354 non-null float64 43 VEHICLES_YESTERDAY 10163 non-null float64 44 VEHICLES_LAST7DAYS 10163 non-null float64 45 AVG_VEHICLES_LAST_MONTH 10163 non-null float64 46 AVG_VEHICLES_THIS_MONTH 10163 non-null float64 47 Classified Rev M0 6763 non-null float64 48 Classified UndisRev M0 6763 non-null float64 49 Classified Rev M1 6230 non-null float64 50 Classified UndisRev M1 6230 non-null float64 51 Classified Rev M2 5596 non-null float64 52 Classified UndisRev M2 5596 non-null float64 53 Classified Rev M3 4806 non-null float64 54 Classified UndisRev M3 4806 non-null float64 55 Classified Rev M4 4180 non-null float64 56 Classified UndisRev M4 4180 non-null float64 57 Classified Rev M5 3782 non-null float64 58 Classified UndisRev M5 3782 non-null float64 59 Classified Rev M6 3378 non-null float64 60 Classified UndisRev M6 3378 non-null float64 61 Classified Rev M7 3123 non-null float64 62 Classified UndisRev M7 3123 non-null float64 63 Classified Rev M8 2893 non-null float64 64 Classified UndisRev M8 2893 non-null float64 65 Classified Rev M9 2637 non-null float64 66 Classified UndisRev M9 2637 non-null float64 67 Classified Rev M10 2242 non-null float64 68 Classified UndisRev M10 2242 non-null float64 69 Classified Rev M11 2052 non-null float64 70 Classified UndisRev M11 2052 non-null float64 71 Classified Rev M12 1852 non-null float64 72 Classified UndisRev M12 1852 non-null float64 73 Classified Rev M13 1654 non-null float64 74 Classified UndisRev M13 1654 non-null float64 75 Classified Rev M14 1485 non-null float64 76 Classified UndisRev M14 1485 non-null float64 77 Campaign_Duration 90159 non-null timedelta64[ns] dtypes: datetime64[ns](4), float64(61), int64(4), object(8), timedelta64[ns](1) memory usage: 53.7+ MB
(lel tgroba est5demt TANY TARE2A tany 34an asbet en el chart mesh hib2a mzbot 3'er lma a7wel el 3amod numeric we ams7 meno ay nus) : 34an ageb akber 17 modad e3lania bdon tekrar y3ni akber 17 men 3amod el Campaign_Duration bdon tekrar 3amlt mot3'ier esmo Top17 7atet gwah mgmo3 kiam 3amod el Campaign_Duration ma3 3amod el campaign bst5dam el function groupby ma3 el function max() b3d keda 7atethom fe gdwal bst5dam el function reset_index() b3d keda rtebthom tnazoli men 7es 3amod el Campaign_Duration bst5dam el function sort_values b3d keda gebt awel 17 bst5dam el function head¶
max() : de btgeb akber kema¶
reset_index() : de debd5al el data gwa gdwal¶
sort_values(by='esm el3amod',ascending=True) : de betrteb 3amod mo3ian tsa3ody law True we tnazoli law False laken mafe4 descending higebli error y3ni law 3awez artebo tnazoli h3mel ascending=False¶
head() :de btgeb awel 3dad mo3ian men el sfof y3ni law 2oltelo head(16) higeb awel 16 saf bs men el gadwal¶
Top17=data['Campaign_Duration'].groupby(data['campaign']).max().reset_index().sort_values(by='Campaign_Duration',ascending=False).head(17)
Top17
| campaign | Campaign_Duration | |
|---|---|---|
| 47 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 376 days |
| 186 | Web Registration_DE_VM_2021 | 361 days |
| 52 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 128 days |
| 98 | TS_DE_VM_1909_Akquise_KW39-40 | 98 days |
| 129 | TS_DE_VM_2007_Akquise | 93 days |
| 110 | TS_DE_VM_1912_Akquise_KW51 | 92 days |
| 84 | TS_DE_VM_1907_Akquise_KW27 | 91 days |
| 111 | TS_DE_VM_2001_Akquise_KW2 | 88 days |
| 99 | TS_DE_VM_1910_Akquise_KW41 | 85 days |
| 85 | TS_DE_VM_1907_Akquise_KW28 | 84 days |
| 127 | TS_DE_VM_2005_Akquise | 83 days |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 81 days |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 81 days |
| 112 | TS_DE_VM_2001_Akquise_KW3 | 78 days |
| 100 | TS_DE_VM_1910_Akquise_KW42 | 78 days |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 77 days |
| 86 | TS_DE_VM_1907_Akquise_KW29 | 77 days |
ana hena est5demt el function info() 34an a4of el data type bta3 3amod el Campaign_Duration la2eto tabe3y timedelta64¶
Top17.info()
<class 'pandas.core.frame.DataFrame'> Index: 17 entries, 47 to 86 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 17 non-null object 1 Campaign_Duration 17 non-null timedelta64[ns] dtypes: object(1), timedelta64[ns](1) memory usage: 408.0+ bytes
ana hena rasmt column bar chart lel mot3'ier Top17 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod eli elmafrod ykon rakmy bs hwa timedelta64 eli hwa Campaign_Duration we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "Top 15 campaign duo to duaration" --> bs zy mna 4aief keda hla2y en el chart mesh mrsom mzbot!!¶
px.bar(Top17,x='campaign',y='Campaign_Duration',text_auto='.2s',width=1200,height=600,title='Top 17 campaign duo to duaration')
Top17['Campaign_Duration']=Top17['Campaign_Duration'].astype(str)
Top17.info()
<class 'pandas.core.frame.DataFrame'> Index: 17 entries, 47 to 86 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 17 non-null object 1 Campaign_Duration 17 non-null object dtypes: object(2) memory usage: 408.0+ bytes
str.split() : de btefsel 3n tare2 el 7aga eli gwa el akwas y3ni law 2olt str.split(' ') fa hifsel 3n tare2 el msafa we law 2olt str.split('/') hifsel 3n tare2 el 4arta el maila de we hakza¶
str.get() : de m3naha hatli rakm el index eli gwa el akwas y3ni law 2olt str.get(0) fa higebli awel index eli rakmo 0 we law 2olt str.get(1) higebli tany index eli rakmo 1 we hakza¶
str.split(' ').str.get(0) : hena hifsel 3n tare2 el msafa we higebli eli rakm el index bta3o 0 fa gabli el arkam bs we mas7 klmet days¶
ana hena 5alet 3amod el Campaign_Duration eli fel mot3'ier Top17 y3red el arkam bs 3ntare2 eni faslt el arkam 3n klmet days bst5dam el function str.split(' ') we 3radt eli el index bta3o 0 bst5dam el function str.get(0)¶
Top17['Campaign_Duration']=Top17['Campaign_Duration'].str.split(' ').str.get(0)
Top17
| campaign | Campaign_Duration | |
|---|---|---|
| 47 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 376 |
| 186 | Web Registration_DE_VM_2021 | 361 |
| 52 | KAM_DE_VM_2011_Vollgas mit AutoScout24 2.0 | 128 |
| 98 | TS_DE_VM_1909_Akquise_KW39-40 | 98 |
| 129 | TS_DE_VM_2007_Akquise | 93 |
| 110 | TS_DE_VM_1912_Akquise_KW51 | 92 |
| 84 | TS_DE_VM_1907_Akquise_KW27 | 91 |
| 111 | TS_DE_VM_2001_Akquise_KW2 | 88 |
| 99 | TS_DE_VM_1910_Akquise_KW41 | 85 |
| 85 | TS_DE_VM_1907_Akquise_KW28 | 84 |
| 127 | TS_DE_VM_2005_Akquise | 83 |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 81 |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 81 |
| 112 | TS_DE_VM_2001_Akquise_KW3 | 78 |
| 100 | TS_DE_VM_1910_Akquise_KW42 | 78 |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 77 |
| 86 | TS_DE_VM_1907_Akquise_KW29 | 77 |
astype(int64) : de bet7wel el datatype bta3el 3amod le numeric¶
info() : de function bt3rfny el data types eli mwgoda fe kol 3amod¶
ana hena 7welt 3amod el Campaign_Duration le numeric 34an b3d keda lma agy arsemo ytrsem mazbot 34an el charts bta5od fel x nus wel fel y numeric fa kan lazem a7wel el y eli hwa hena 3amod el Campaign_Duration le numeric b3d keda ast5demt el function info() 34an at2ked en 3amod el Campaign_Duration et7wel le numeric mzbot¶
Top17['Campaign_Duration']=Top17['Campaign_Duration'].astype('int64')
Top17.info()
<class 'pandas.core.frame.DataFrame'> Index: 17 entries, 47 to 86 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 17 non-null object 1 Campaign_Duration 17 non-null int64 dtypes: int64(1), object(1) memory usage: 408.0+ bytes
ana hena rasmt column bar chart lel mot3'ier Top16 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Campaign_Duration we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "Top 17 campaign duo to duaration" we hla2y eno etrsm mzboot!¶
px.bar(Top17,x='campaign',y='Campaign_Duration',text_auto='.2s',width=1200,height=600,title='Top 17 campaign duo to duaration')
2- Define all the customers segmentations ?¶
ana hena 3awez a3rf 3ndy kam 4are7a fa el matenki eni hageb el 4raye7 bdon tekrar fa hst5dem el function unique() le 3amod el SEGMENT¶
unique() : de function bst5dmha 34ana ageb beha el kiam el fareda y3ni eli mesh metkrara fe 3AMOD WA7ED BS¶
nunique() : de function bst5dmha 34ana ageb beha el kiam el fareda y3ni eli mesh metkrara fe 3AMOD WA7ED WA AKTER MEN 3AMOD 3ADI¶
data['SEGMENT'].unique()
array(['Independent Dealers', 'Small Franchised Dealers',
'Franchised Dealers', 'Schotterplatz Dealers', 'Luxury Sellers',
'Large Independent Dealers', 'Broker', 'Bull Accounts',
'OTP Optimizers', nan], dtype=object)
data
| SEGMENT | campaignstartdate | campaignenddate | campaign | progress | STATUS | contacted | conversion | cr2 basis | REJECTIONREASON | ... | Classified UndisRev M10 | Classified Rev M11 | Classified UndisRev M11 | Classified Rev M12 | Classified UndisRev M12 | Classified Rev M13 | Classified UndisRev M13 | Classified Rev M14 | Classified UndisRev M14 | Campaign_Duration | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 66 days |
| 1 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 66 days |
| 2 | Small Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 66 days |
| 3 | Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 66 days |
| 4 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 | 66 days |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90155 | Independent Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90156 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90157 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90158 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | Export Business | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
90159 rows × 78 columns
3- Which segments were targeted by each advertising campaign ?¶
ana hena 3awez a3rf kol 7amla e3lania esthdeft 4raye7 a ? fa el mnteki eni ast5dem el function groupby ma3 el function nunique() le 3amod el campaign ma3 3amod el SEGMENT 34an el function de btgeb 3dad el kiam el fareda y3ni eli mesh metkrara fe 3AMOD WA7ED WA AKTER MEN 3AMOD 3ADI¶
nunique() : de btgeb 3dad el kiam el fareda y3ni eli mesh metkrara fe 3AMOD WA7ED WA AKTER MEN 3AMOD 3ADI¶
reset_index() : de debd5al el data gwa gdwal¶
ana hena est5demt el tare2a el 2ola bta3et el groupby 34an ageb el 4raye7 el mosthdfa men kol 7mla e3lania bdon tekrar bst5dam el function nunique() fa 3amlt groupby le 3amod el campaign ma3 3amod el campaign we 3amod el SEGMENT b3d keda d5lthom fe gdwal 3n tare2 el mo3dla reset_index() fa gabli error 34an fe 3amoden be nafs el esm fa ast5demt el mo3dla rename('') 34an a3'ier esm el 3amod campaign el tany le ('Targeted Segments by each Campaign')¶
data['campaign'].rename('Targeted Segments by each Campaign').groupby([data['campaign'],data['SEGMENT']]).nunique().reset_index()
| campaign | SEGMENT | Targeted Segments by each Campaign | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | Franchised Dealers | 1 |
| 1 | BKD_DE_VM_2008_Akquise | Independent Dealers | 1 |
| 2 | BKD_DE_VM_2008_Akquise | Large Independent Dealers | 1 |
| 3 | BKD_DE_VM_2008_Akquise | Luxury Sellers | 1 |
| 4 | BKD_DE_VM_2008_Akquise | Schotterplatz Dealers | 1 |
| ... | ... | ... | ... |
| 1033 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Aq... | Schotterplatz Dealers | 1 |
| 1034 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Independent Dealers | 1 |
| 1035 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Large Independent Dealers | 1 |
| 1036 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Luxury Sellers | 1 |
| 1037 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Schotterplatz Dealers | 1 |
1038 rows × 3 columns
reset_index(name='') : de bst5demha 34an a3'ier esm 3amod¶
ana hena est5demt el tare2a el tanya bta3et el groupby 34an ageb el 4raye7 el mosthdfa men kol 7mla e3lania bdon tekrar bst5dam el function nunique() fa 3amlt groupby le 3amod el campaign we 3amod el SEGMENT ma3 3amod el campaign fa gabli error 34an fe 3amoden be nafs el esm fa ast5demt el function reset_index(name='') 34an a3'ier esm el 3amod campaign el tany le 'Targeted Segments by each Campaign'¶
data.groupby(['campaign','SEGMENT'])['campaign'].nunique().reset_index(name='Targeted Segments by each Campaign')
| campaign | SEGMENT | Targeted Segments by each Campaign | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | Franchised Dealers | 1 |
| 1 | BKD_DE_VM_2008_Akquise | Independent Dealers | 1 |
| 2 | BKD_DE_VM_2008_Akquise | Large Independent Dealers | 1 |
| 3 | BKD_DE_VM_2008_Akquise | Luxury Sellers | 1 |
| 4 | BKD_DE_VM_2008_Akquise | Schotterplatz Dealers | 1 |
| ... | ... | ... | ... |
| 1033 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Aq... | Schotterplatz Dealers | 1 |
| 1034 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Independent Dealers | 1 |
| 1035 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Large Independent Dealers | 1 |
| 1036 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Luxury Sellers | 1 |
| 1037 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Schotterplatz Dealers | 1 |
1038 rows × 3 columns
4- Who are the most important segments should be targeted to make bigger revenue ?¶
el tfker el manteky bt3ha eni a4of anhy akter 4raye7 esthdeftha el 7mlat el e3lania 34an sa3etha hia de eli ana hrkez 3aleha fel 7mlat el e3lania el gaya 34an de eli htgebli akber nesba men el arba7 we de leha tar2ten :¶
1- Eni bageb 3dad el 4raye7 el mosthdfa fe kol 7amla e3lania¶
2- Eni a4of kol 4are7a esthdeftha kam 7amla e3lania y3ni ageb mda tekrar kol 4are7a fe kol 7amla e3lania¶
AWEL TARE2A: ana hena est5demt el tare2a el 2ola bta3et el groupby we 3amlt mot3'ier esmo t d5lt gwah 3dad el 4raye7 el mosthdfa men kol 7mla e3lania bdon tekrar bst5dam el function nunique() fa 3amlt groupby le 3amod el campaign ma3 3amod el campaign we 3amod el SEGMENT b3d keda d5lthom fe gdwal 3n tare2 el mo3dla reset_index() fa gabli error 34an fe 3amoden be nafs el esm fa ast5demt el mo3dla rename('') 34an a3'ier esm el 3amod campaign el tany le ('Number of targeted Segments by each Campaign')¶
t=data['campaign'].rename('Number of targeted Segments by each Campaign').groupby([data['campaign'],data['SEGMENT']]).nunique().reset_index()
t
| campaign | SEGMENT | Number of targeted Segments by each Campaign | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | Franchised Dealers | 1 |
| 1 | BKD_DE_VM_2008_Akquise | Independent Dealers | 1 |
| 2 | BKD_DE_VM_2008_Akquise | Large Independent Dealers | 1 |
| 3 | BKD_DE_VM_2008_Akquise | Luxury Sellers | 1 |
| 4 | BKD_DE_VM_2008_Akquise | Schotterplatz Dealers | 1 |
| ... | ... | ... | ... |
| 1033 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Aq... | Schotterplatz Dealers | 1 |
| 1034 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Independent Dealers | 1 |
| 1035 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Large Independent Dealers | 1 |
| 1036 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Luxury Sellers | 1 |
| 1037 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Schotterplatz Dealers | 1 |
1038 rows × 3 columns
b3d keda est5demt bardo el tar2a el 2ola bta3et el groupby ma3 el function sum() 34an ageb mgmo3 el el 4raye7 el mosthdfa fe kol 7amla e3lania fe kol 4are7a we d5lthom fe gdwal bst5dam el function reset_index()¶
t['Number of targeted Segments by each Campaign'].groupby(t['SEGMENT']).sum().reset_index()
| SEGMENT | Number of targeted Segments by each Campaign | |
|---|---|---|
| 0 | Broker | 80 |
| 1 | Bull Accounts | 54 |
| 2 | Franchised Dealers | 124 |
| 3 | Independent Dealers | 168 |
| 4 | Large Independent Dealers | 121 |
| 5 | Luxury Sellers | 135 |
| 6 | OTP Optimizers | 89 |
| 7 | Schotterplatz Dealers | 142 |
| 8 | Small Franchised Dealers | 125 |
aw est5demt bardo el tar2a el tanya bta3et el groupby ma3 el function sum() 34an ageb bardo mgmo3 el el 4raye7 el mosthdfa fe kol 7amla e3lania fe kol 4are7a we d5lthom fe gdwal bst5dam el function reset_index()¶
t.groupby('SEGMENT')['Number of targeted Segments by each Campaign'].sum().reset_index()
| SEGMENT | Number of targeted Segments by each Campaign | |
|---|---|---|
| 0 | Broker | 80 |
| 1 | Bull Accounts | 54 |
| 2 | Franchised Dealers | 124 |
| 3 | Independent Dealers | 168 |
| 4 | Large Independent Dealers | 121 |
| 5 | Luxury Sellers | 135 |
| 6 | OTP Optimizers | 89 |
| 7 | Schotterplatz Dealers | 142 |
| 8 | Small Franchised Dealers | 125 |
AWEL TARE2A: ana hena est5demt el tare2a el tanya bta3et el groupby we 3amlt mot3'ier esmo t d5lt gwah 3dad el 4raye7 el mosthdfa men kol 7mla e3lania fe kol 4are7a bdon tekrar bst5dam el function nunique() fa 3amlt groupby le 3amod el campaign we 3amod el SEGMENT ma3 3amod el campaign fa gabli error 34an fe 3amoden be nafs el esm fa ast5demt el function reset_index(name='') 34an a3'ier esm el 3amod campaign el tany le 'Number of targeted Segments by each Campaign'¶
t=data.groupby(['campaign','SEGMENT'])['campaign'].nunique().reset_index(name='Number of targeted Segments by each Campaign')
t
| campaign | SEGMENT | Number of targeted Segments by each Campaign | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | Franchised Dealers | 1 |
| 1 | BKD_DE_VM_2008_Akquise | Independent Dealers | 1 |
| 2 | BKD_DE_VM_2008_Akquise | Large Independent Dealers | 1 |
| 3 | BKD_DE_VM_2008_Akquise | Luxury Sellers | 1 |
| 4 | BKD_DE_VM_2008_Akquise | Schotterplatz Dealers | 1 |
| ... | ... | ... | ... |
| 1033 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Aq... | Schotterplatz Dealers | 1 |
| 1034 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Independent Dealers | 1 |
| 1035 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Large Independent Dealers | 1 |
| 1036 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Luxury Sellers | 1 |
| 1037 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | Schotterplatz Dealers | 1 |
1038 rows × 3 columns
b3d keda est5demt bardo el tar2a el 2ola bta3et el groupby ma3 el function sum() 34an ageb mgmo3 el el 4raye7 el mosthdfa fe kol 7amla e3lania fe kol 4are7a we d5lthom fe gdwal bst5dam el function reset_index()¶
t['Number of targeted Segments by each Campaign'].groupby(t['SEGMENT']).sum().reset_index()
| SEGMENT | Number of targeted Segments by each Campaign | |
|---|---|---|
| 0 | Broker | 80 |
| 1 | Bull Accounts | 54 |
| 2 | Franchised Dealers | 124 |
| 3 | Independent Dealers | 168 |
| 4 | Large Independent Dealers | 121 |
| 5 | Luxury Sellers | 135 |
| 6 | OTP Optimizers | 89 |
| 7 | Schotterplatz Dealers | 142 |
| 8 | Small Franchised Dealers | 125 |
aw est5demt bardo el tar2a el tanya bta3et el groupby ma3 el function sum() 34an ageb bardo mgmo3 el el 4raye7 el mosthdfa fe kol 7amla e3lania fe kol 4are7a we d5lthom fe gdwal bst5dam el function reset_index()¶
t.groupby('SEGMENT')['Number of targeted Segments by each Campaign'].sum().reset_index()
| SEGMENT | Number of targeted Segments by each Campaign | |
|---|---|---|
| 0 | Broker | 80 |
| 1 | Bull Accounts | 54 |
| 2 | Franchised Dealers | 124 |
| 3 | Independent Dealers | 168 |
| 4 | Large Independent Dealers | 121 |
| 5 | Luxury Sellers | 135 |
| 6 | OTP Optimizers | 89 |
| 7 | Schotterplatz Dealers | 142 |
| 8 | Small Franchised Dealers | 125 |
value_counts() : de m3naha mekdar tekrar kol kema fel 3amod¶
reset_index(name='') : de bst5demha 34an a3'ier esm el 3amod el 2a5er eli hit3mel b3d est5dam el groupby mslan¶
TANY TARE2A: 3amlt mot3'ier esmo w we d5alt gwah mekdar tekrar kol 4are7a tam estahdfa men el 7amlat el e3lania y3ni gebt mgmo3 el 4raye7 el mosthdfa fe kol 4are7a bst5dam el function value_counts() we d5lthom fe gdwal we samet el 3amod eli et3aml be esm "Number of targeted Segments by each Campaign" bst5dam el function reset_index(name='')¶
w=t['SEGMENT'].value_counts().reset_index(name='Number of targeted Segments by each Campaign')
w
| SEGMENT | Number of targeted Segments by each Campaign | |
|---|---|---|
| 0 | Independent Dealers | 168 |
| 1 | Schotterplatz Dealers | 142 |
| 2 | Luxury Sellers | 135 |
| 3 | Small Franchised Dealers | 125 |
| 4 | Franchised Dealers | 124 |
| 5 | Large Independent Dealers | 121 |
| 6 | OTP Optimizers | 89 |
| 7 | Broker | 80 |
| 8 | Bull Accounts | 54 |
ana hena rasmt Pie chart lel mot3'ier t eli gwah 3dad el 4raye7 el mosthdfa men kol 7mla e3lania fe kol 4are7a bdon tekrar we 7atet fel names el 3amod el nusy eli hwa hena 'SEGMENT' we 7atet fel values eli 3amod el rakmy eli hwa hena 'Number of Targets¶
px.pie(w,names='SEGMENT',values='Number of targeted Segments by each Campaign')
r=data['REJECTIONREASON'].value_counts().reset_index().sort_values(by='count',ascending=False).head(10)
r
| REJECTIONREASON | count | |
|---|---|---|
| 0 | No Interest | 15402 |
| 1 | Competitor Preferred | 5613 |
| 2 | Wrong Time | 3992 |
| 3 | Contact Limit Reached | 3047 |
| 4 | No Potential | 2464 |
| 5 | Bankruptcy / Business Liquidation | 1757 |
| 6 | Wrong Campaign Selection | 1635 |
| 7 | Not Enough Cars | 1336 |
| 8 | Bad Experience | 1082 |
| 9 | Duplicate | 1073 |
ana hena rasmt column bar chart lel mot3'ier r we 7atet fel x el 3amod el nusy REJECTIONREASON we 7atet fel y el 3amod el rakmy count we 5alet 3ard el chart 1000 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "Top 10 Rejection reasons"¶
px.bar(r,x='REJECTIONREASON',y='count',text_auto='.2s',width=1000,height=600,title='Top 10 Rejection reasons')
6- Which campaign/campaign offer/sales channel would be the optimal to use If the primary goal is to increase customer size ?¶
el so2al hena by2ol anhy 7amla e3lania bete5ale 3dad el 3omla yzed?¶
el tafker el manteky lel so2al da eni a4of anhy 7mla e3lania bet5ale el client yemdy 3a2d wel 3amod bta3 el 3a2d esmo conversion fa law 3amod el conversion bisawy 1 ezn keda el 3amel mda 3a2d we law 0 yeb2a el 3amel mmda4 3a2d¶
AWEL TARE2A eni hst5dem el function value_counts() : fa 3amlt mot3'ier esmo signed_offers 7atet gwah mekdar tekrar kol 7amla e3lania bel conversion bt3ha y3ni mslan awel 7amla e3lania eli hia 'TS_DE_VM_2103_Akquise' lma conversion bt3ha kan be zero y3ni lma el 3amel mamda4 el 3a2d etkraret 2345 mra we hakza b3d keda d5lthom fe gdwal we rtebthom tnazoli men 7es 3amod el count eli tel3 lma nfezt el function value_counts()¶
signed_offers=data[['campaign','conversion']].value_counts().reset_index().sort_values(by='count',ascending=False)
signed_offers.info()
signed_offers
<class 'pandas.core.frame.DataFrame'> Index: 381 entries, 0 to 380 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 381 non-null object 1 conversion 381 non-null int64 2 count 381 non-null int64 dtypes: int64(2), object(1) memory usage: 11.9+ KB
| campaign | conversion | count | |
|---|---|---|---|
| 0 | TS_DE_VM_2103_Akquise | 0 | 2345 |
| 1 | TS_DE_VM_2104_RMS Attack Independent_Acquisition | 0 | 2344 |
| 2 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 0 | 2290 |
| 3 | BKD_DE_VM_2103_Akquise | 0 | 1884 |
| 4 | BKD_DE_VM_2105_RMS Attack Independent Acquisition | 0 | 1538 |
| ... | ... | ... | ... |
| 376 | TS_DE_VM_2112_RMS Attack Small Franchised Foll... | 1 | 1 |
| 377 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 1 | 1 |
| 378 | KAM_DE_VM_2111_mobile.de churn Acquisition | 1 | 1 |
| 379 | KAM_DE_VM_2109_RMS Attack Franchised Follow-up | 1 | 1 |
| 380 | TS_DE_VM_2112_RMS Attack Small Franchised Acqu... | 1 | 1 |
381 rows × 3 columns
b3d keda 3amlt filter le 3amod el conversion 34an a3red eli el kima bt3to betsawy 1 bs y3ni el 7amla el e3lania eli bsbbha el 3amel mda 3a2d b3d keda 3radt akber 10 kiam fe 3amod el count¶
signed_offers=signed_offers[signed_offers['conversion']==1].nlargest(10,'count')
signed_offers
| campaign | conversion | count | |
|---|---|---|---|
| 67 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 1 | 408 |
| 85 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 1 | 315 |
| 128 | TS_DE_VM_2007_Divide&Conquer_BW | 1 | 187 |
| 136 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 1 | 163 |
| 139 | BKD_DE_VM_2008_Akquise | 1 | 155 |
| 142 | TS_DE_VM_2102_Akquise | 1 | 151 |
| 146 | TS_DE_VM_2102_Kick Ass Corona Challenge | 1 | 140 |
| 149 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 1 | 134 |
| 152 | TS_DE_VM_2007_Divide&Conquer_München | 1 | 126 |
| 154 | TS_DE_VM_2003_Sales Challenge | 1 | 125 |
b3d keda 4elt 3amod el conversion 34an mihmne4 fe 7aga 34an 3awez a3red bs kol 7mla e3lania etmda bsbbha kam 3a2d¶
signed_offers=signed_offers[signed_offers['conversion']==1].nlargest(10,'count').drop(columns=['conversion'])
signed_offers
| campaign | count | |
|---|---|---|
| 67 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 85 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 128 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 136 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 139 | BKD_DE_VM_2008_Akquise | 155 |
| 142 | TS_DE_VM_2102_Akquise | 151 |
| 146 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 149 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 152 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 154 | TS_DE_VM_2003_Sales Challenge | 125 |
signed_offers.columns
Index(['campaign', 'count'], dtype='object')
b3d keda 3amlt rename le 3amod el count we 5alet esmo 'Number of signed offers!' 34an yeb2a mo3ber akter¶
rename(columns={'esm el 3amod eli 3awez a3'ier esmo':'el esm el gded'}) --> de function bst5dmha 34an a3'ier esm 3amod mo3ian¶
inplace=True --> de function bst5dmha 34an atb2 t3'ier 7asl 3al data¶
signed_offers.rename(columns={'count':'Number of signed offers!'},inplace=True)
signed_offers
| campaign | Number of signed offers! | |
|---|---|---|
| 67 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 85 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 128 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 136 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 139 | BKD_DE_VM_2008_Akquise | 155 |
| 142 | TS_DE_VM_2102_Akquise | 151 |
| 146 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 149 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 152 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 154 | TS_DE_VM_2003_Sales Challenge | 125 |
ana hena rasmt column bar chart lel mot3'ier signed_offers we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Number of signed offers! we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(signed_offers,x='campaign',y='Number of signed offers!',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TANY TARE2A eni hst5dem el function groupby bel tare2a el 2ola ma3 el function sum() fa 34an 3amod el conversion feh 0 we 1 fa keda keda lma bigm3 el kima 0 hatefdl be sefr laken lma ygm3 el kima 1 hitl3 3dad mo3ian 34an keda manteky eni ast5dem el groupby ma3 el function sum() 3adi fa 3amlt mot3'ier esmo x we 7atet gwah mgmo3 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania we d5lthom fe gdwal we samet 3amod el conversion 'Number of signed offers' bst5dam el function rename('Number of signed offers') we rtebthom tnazoli men 7es 3amod el Number of signed offers we 3radt awel 10 sfof bs¶
x=data['conversion'].rename('Number of signed offers').groupby(data['campaign']).sum().reset_index().sort_values(by='Number of signed offers',ascending=False).head(10)
x
| campaign | Number of signed offers | |
|---|---|---|
| 53 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 45 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 0 | BKD_DE_VM_2008_Akquise | 155 |
| 149 | TS_DE_VM_2102_Akquise | 151 |
| 150 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 137 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 125 | TS_DE_VM_2003_Sales Challenge | 125 |
ana hena rasmt column bar chart lel mot3'ier x we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Number of signed offers we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(x,x='campaign',y='Number of signed offers',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TANY TARE2A eni hst5dem el function groupby bel tare2a el 2ola ma3 el function sum() fa 34an 3amod el conversion feh 0 we 1 fa keda keda lma bigm3 el kima 0 hatefdl be sefr laken lma ygm3 el kima 1 hitl3 3dad mo3ian 34an keda manteky eni ast5dem el groupby ma3 el function sum() 3adi fa 3amlt mot3'ier esmo x1 we 7atet gwah mgmo3 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania we d5lthom fe gdwal we samet el 3amod da 'Number of signed offers' bst5dam el function reset_index(name='Number of signed offers') we rtebthom tnazoli men 7es 3amod el Number of signed offers we 3radt awel 10 sfof bs¶
x1=data['conversion'].groupby(data['campaign']).sum().reset_index(name='Number of signed offers').sort_values(by='Number of signed offers',ascending=False).head(10)
x1.info()
x1
<class 'pandas.core.frame.DataFrame'> Index: 10 entries, 53 to 125 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 10 non-null object 1 Number of signed offers 10 non-null int64 dtypes: int64(1), object(1) memory usage: 240.0+ bytes
| campaign | Number of signed offers | |
|---|---|---|
| 53 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 45 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 0 | BKD_DE_VM_2008_Akquise | 155 |
| 149 | TS_DE_VM_2102_Akquise | 151 |
| 150 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 137 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 125 | TS_DE_VM_2003_Sales Challenge | 125 |
ana hena rasmt column bar chart lel mot3'ier x we 7atet fel x1 el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Number of signed offers we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(x1,x='campaign',y='Number of signed offers',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TANY TARE2A eni hst5dem el function groupby bel tare2a el tanya ma3 el function sum() fa 34an 3amod el conversion feh 0 we 1 fa keda keda lma bigm3 el kima 0 hatefdl be sefr laken lma ygm3 el kima 1 hitl3 3dad mo3ian 34an keda manteky eni ast5dem el groupby ma3 el function sum() fa 3amlt mot3'ier esmo y we 7atet gwah mgmo3 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania we d5lthom fe gdwal we samet el 3amod da 'Number of signed offers' bst5dam el function rename(columns={'conversion':'Number of signed offers'}) we rtebthom tnazoli men 7es 3amod el Number of signed offers we 3radt awel 10 sfof bs¶
rename(columns={'esm el 3amod eli 3awez a3'ier esmo':'el esm el gded'}) --> de function bst5dmha 34an a3'ier esm 3amod mo3ian¶
y=data.groupby('campaign')['conversion'].sum().reset_index().rename(columns={'conversion':'Number of signed offers'}).sort_values(by='Number of signed offers',ascending=False).head(10)
y.info()
y
<class 'pandas.core.frame.DataFrame'> Index: 10 entries, 53 to 125 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 10 non-null object 1 Number of signed offers 10 non-null int64 dtypes: int64(1), object(1) memory usage: 240.0+ bytes
| campaign | Number of signed offers | |
|---|---|---|
| 53 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 45 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 0 | BKD_DE_VM_2008_Akquise | 155 |
| 149 | TS_DE_VM_2102_Akquise | 151 |
| 150 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 137 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 125 | TS_DE_VM_2003_Sales Challenge | 125 |
ana hena rasmt column bar chart lel mot3'ier y we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Number of signed offers we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(y,x='campaign',y='Number of signed offers',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TANY TARE2A eni hst5dem el function groupby bel tare2a el tanya ma3 el function sum() fa 34an 3amod el conversion feh 0 we 1 fa keda keda lma bigm3 el kima 0 hatefdl be sefr laken lma ygm3 el kima 1 hitl3 3dad mo3ian 34an keda manteky eni ast5dem el groupby ma3 el function sum() fa 3amlt mot3'ier esmo y1 we 7atet gwah mgmo3 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania we d5lthom fe gdwal we samet el 3amod da 'Number of signed offers' bst5dam el function reset_index(name='Number of signed offers') we rtebthom tnazoli men 7es 3amod el Number of signed offers we 3radt awel 10 sfof bs¶
y1=data.groupby('campaign')['conversion'].sum().reset_index(name='Number of signed offers').sort_values(by='Number of signed offers',ascending=False).head(10)
y1.info()
y1
<class 'pandas.core.frame.DataFrame'> Index: 10 entries, 53 to 125 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 10 non-null object 1 Number of signed offers 10 non-null int64 dtypes: int64(1), object(1) memory usage: 240.0+ bytes
| campaign | Number of signed offers | |
|---|---|---|
| 53 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 51 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 130 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 45 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 0 | BKD_DE_VM_2008_Akquise | 155 |
| 149 | TS_DE_VM_2102_Akquise | 151 |
| 150 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 137 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 131 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 125 | TS_DE_VM_2003_Sales Challenge | 125 |
ana hena rasmt column bar chart lel mot3'ier y1 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Number of signed offers we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(y1,x='campaign',y='Number of signed offers',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TALET TARE2A eni hst5dem el function groupby bel tare2a el 2ola ma3 el function count() fa 3amlt mot3'ier esmo x1 we 7atet gwah 3dad 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania ma3 3amod el conversion tany y3ni ma3 kol no3 3a2d we d5lthom fe gdwal we samet 3amod el conversion el tany 'Number of signed offers' bst5dam el function rename('Number of signed offers') we rtebthom tnazoli men 7es 3amod el Number of signed offers¶
x1=data['conversion'].rename('Number of signed offers').groupby([data['campaign'],data['conversion']]).count().reset_index().sort_values(by='Number of signed offers',ascending=False)
x1.info()
x1
<class 'pandas.core.frame.DataFrame'> Index: 381 entries, 290 to 355 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 381 non-null object 1 conversion 381 non-null int64 2 Number of signed offers 381 non-null int64 dtypes: int64(2), object(1) memory usage: 11.9+ KB
| campaign | conversion | Number of signed offers | |
|---|---|---|---|
| 290 | TS_DE_VM_2103_Akquise | 0 | 2345 |
| 292 | TS_DE_VM_2104_RMS Attack Independent_Acquisition | 0 | 2344 |
| 101 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 0 | 2290 |
| 18 | BKD_DE_VM_2103_Akquise | 0 | 1884 |
| 20 | BKD_DE_VM_2105_RMS Attack Independent Acquisition | 0 | 1538 |
| ... | ... | ... | ... |
| 357 | TS_DE_VM_2112_RMS Attack Small Franchised Foll... | 1 | 1 |
| 90 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 1 | 1 |
| 150 | KAM_DE_VM_2111_mobile.de churn Acquisition | 1 | 1 |
| 128 | KAM_DE_VM_2109_RMS Attack Franchised Follow-up | 1 | 1 |
| 355 | TS_DE_VM_2112_RMS Attack Small Franchised Acqu... | 1 | 1 |
381 rows × 3 columns
b3d keda 3amlt filter le 3amod el conversion 34an a3red eli el kima bt3to betsawy 1 bs y3ni el 7amla el e3lania eli bsbbha el 3amel mda 3a2d b3d keda 3radt akber 10 kiam fe 3amod el Number of signed offers¶
x1=x1[x1['conversion']==1].nlargest(10,'Number of signed offers')
x1
| campaign | conversion | Number of signed offers | |
|---|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 1 | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 1 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 1 | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 1 | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 1 | 155 |
| 287 | TS_DE_VM_2102_Akquise | 1 | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 1 | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 1 | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 1 | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 1 | 125 |
b3d keda 4elt 3amod el conversion 34an mihmne4 fe 7aga 34an 3awez a3red bs kol 7mla e3lania etmda bsbbha kam 3a2d¶
x1=x1[x1['conversion']==1].nlargest(10,'Number of signed offers').drop(columns='conversion')
x1
| campaign | Number of signed offers | |
|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 155 |
| 287 | TS_DE_VM_2102_Akquise | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 125 |
x1.columns
Index(['campaign', 'Number of signed offers'], dtype='object')
ana hena rasmt column bar chart lel mot3'ier x1 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Number of signed offers we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(x1,x='campaign',y='Number of signed offers',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TALET TARE2A eni hst5dem el function groupby bel tare2a el 2ola ma3 el function count() bardo bs eni 3'irt esm 2a5er 3amod el conversion el tany le Number of signed offers keda : fa 3amlt mot3'ier esmo x2 we 7atet gwah 3dad 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania ma3 3amod el conversion tany y3ni ma3 kol no3 3a2d we d5lthom fe gdwal we samet 3amod el conversion el tany 'Number of signed offers' bst5dam el function reset_index(name='Number of signed offers') we rtebthom tnazoli men 7es 3amod el Number of signed offers¶
x2=data['conversion'].groupby([data['campaign'],data['conversion']]).count().reset_index(name='Number of signed offers').sort_values(by='Number of signed offers',ascending=False)
x2.info()
x2
<class 'pandas.core.frame.DataFrame'> Index: 381 entries, 290 to 355 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 381 non-null object 1 conversion 381 non-null int64 2 Number of signed offers 381 non-null int64 dtypes: int64(2), object(1) memory usage: 11.9+ KB
| campaign | conversion | Number of signed offers | |
|---|---|---|---|
| 290 | TS_DE_VM_2103_Akquise | 0 | 2345 |
| 292 | TS_DE_VM_2104_RMS Attack Independent_Acquisition | 0 | 2344 |
| 101 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 0 | 2290 |
| 18 | BKD_DE_VM_2103_Akquise | 0 | 1884 |
| 20 | BKD_DE_VM_2105_RMS Attack Independent Acquisition | 0 | 1538 |
| ... | ... | ... | ... |
| 357 | TS_DE_VM_2112_RMS Attack Small Franchised Foll... | 1 | 1 |
| 90 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 1 | 1 |
| 150 | KAM_DE_VM_2111_mobile.de churn Acquisition | 1 | 1 |
| 128 | KAM_DE_VM_2109_RMS Attack Franchised Follow-up | 1 | 1 |
| 355 | TS_DE_VM_2112_RMS Attack Small Franchised Acqu... | 1 | 1 |
381 rows × 3 columns
b3d keda 3amlt filter le 3amod el conversion 34an a3red eli el kima bt3to betsawy 1 bs y3ni el 7amla el e3lania eli bsbbha el 3amel mda 3a2d b3d keda 3radt akber 10 kiam fe 3amod el Number of signed offers¶
x2=x2[x2['conversion']==1].nlargest(10,'Number of signed offers')
x2
| campaign | conversion | Number of signed offers | |
|---|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 1 | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 1 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 1 | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 1 | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 1 | 155 |
| 287 | TS_DE_VM_2102_Akquise | 1 | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 1 | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 1 | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 1 | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 1 | 125 |
b3d keda 4elt 3amod el conversion 34an mihmne4 fe 7aga 34an 3awez a3red bs kol 7mla e3lania etmda bsbbha kam 3a2d¶
x2=x2[x2['conversion']==1].nlargest(10,'Number of signed offers').drop(columns='conversion')
x2
| campaign | Number of signed offers | |
|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 155 |
| 287 | TS_DE_VM_2102_Akquise | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 125 |
x2.columns
Index(['campaign', 'Number of signed offers'], dtype='object')
ana hena rasmt column bar chart lel mot3'ier x2 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy Number of signed offers we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(x2,x='campaign',y='Number of signed offers',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TALET TARE2A eni hst5dem el function groupby bel tare2a el tanya ma3 el function count() bardo fa 3amlt mot3'ier esmo x3 we 7atet gwah 3dad 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania ma3 3amod el conversion tany y3ni ma3 kol no3 3a2d we d5lthom fe gdwal we samet 3amod el conversion el awel 'Contract Type' bst5dam el function .rename('Contract Type') we rtebthom tnazoli men 7es 3amod el conversion 3adi¶
x3=data.groupby([data['campaign'],data['conversion'].rename('Contract Type')])['conversion'].count().reset_index().sort_values(by='conversion',ascending=False)
x3
| campaign | Contract Type | conversion | |
|---|---|---|---|
| 290 | TS_DE_VM_2103_Akquise | 0 | 2345 |
| 292 | TS_DE_VM_2104_RMS Attack Independent_Acquisition | 0 | 2344 |
| 101 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 0 | 2290 |
| 18 | BKD_DE_VM_2103_Akquise | 0 | 1884 |
| 20 | BKD_DE_VM_2105_RMS Attack Independent Acquisition | 0 | 1538 |
| ... | ... | ... | ... |
| 357 | TS_DE_VM_2112_RMS Attack Small Franchised Foll... | 1 | 1 |
| 90 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 1 | 1 |
| 150 | KAM_DE_VM_2111_mobile.de churn Acquisition | 1 | 1 |
| 128 | KAM_DE_VM_2109_RMS Attack Franchised Follow-up | 1 | 1 |
| 355 | TS_DE_VM_2112_RMS Attack Small Franchised Acqu... | 1 | 1 |
381 rows × 3 columns
b3d keda 3amlt filter le 3amod el Contract Type 34an a3red eli el kima bt3to betsawy 1 bs y3ni el 7amla el e3lania eli bsbbha el 3amel mda 3a2d b3d keda 3radt akber 10 kiam fe 3amod el conversion¶
x3=x3[x3['Contract Type']==1].nlargest(10,'conversion')
x3
| campaign | Contract Type | conversion | |
|---|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 1 | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 1 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 1 | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 1 | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 1 | 155 |
| 287 | TS_DE_VM_2102_Akquise | 1 | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 1 | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 1 | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 1 | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 1 | 125 |
b3d keda 4elt 3amod el Contract Type 34an mihmne4 fe 7aga 34an 3awez a3red bs kol 7mla e3lania etmda bsbbha kam 3a2d¶
x3=x3[x3['Contract Type']==1].nlargest(10,'conversion').drop(columns='Contract Type')
x3
| campaign | conversion | |
|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 155 |
| 287 | TS_DE_VM_2102_Akquise | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 125 |
x3.columns
ana hena rasmt column bar chart lel mot3'ier x3 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy conversion we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(x3,x='campaign',y='conversion',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TALET TARE2A eni hst5dem el function groupby bel tare2a el tanya ma3 el function count() bardo fa 3amlt mot3'ier esmo x4 we 7atet gwah 3dad 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania ma3 3amod el conversion tany y3ni ma3 kol no3 3a2d we d5lthom fe gdwal we samet 3amod el conversion el awel 'Contract Type' bst5dam el function .rename_axis(['campaign','Contract Type']) we rtebthom tnazoli men 7es 3amod el conversion 3adi¶
.rename_axis(['esm awel 3amod fel gdwal 3awez a3'iro','esm tany 3amod fel gdwal 3awez a3'iro']) --> de bet3'ier asma2 el3wamd fel gdwal zy mna 7atet belzabt y3ni law 7atet keda .rename_axis(['TEST','Contract Type']) esm awel 3amod fel gdwal hib2a TEST we esm tany 3amod fel gdwal hib2a Contract Type¶
x4=data.groupby(['campaign','conversion'])['conversion'].count().rename_axis(['campaign','Contract Type']).reset_index().sort_values(by='conversion',ascending=False)
x4
| campaign | Contract Type | conversion | |
|---|---|---|---|
| 290 | TS_DE_VM_2103_Akquise | 0 | 2345 |
| 292 | TS_DE_VM_2104_RMS Attack Independent_Acquisition | 0 | 2344 |
| 101 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 0 | 2290 |
| 18 | BKD_DE_VM_2103_Akquise | 0 | 1884 |
| 20 | BKD_DE_VM_2105_RMS Attack Independent Acquisition | 0 | 1538 |
| ... | ... | ... | ... |
| 357 | TS_DE_VM_2112_RMS Attack Small Franchised Foll... | 1 | 1 |
| 90 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 1 | 1 |
| 150 | KAM_DE_VM_2111_mobile.de churn Acquisition | 1 | 1 |
| 128 | KAM_DE_VM_2109_RMS Attack Franchised Follow-up | 1 | 1 |
| 355 | TS_DE_VM_2112_RMS Attack Small Franchised Acqu... | 1 | 1 |
381 rows × 3 columns
b3d keda 3amlt filter le 3amod el Contract Type 34an a3red eli el kima bt3to betsawy 1 bs y3ni el 7amla el e3lania eli bsbbha el 3amel mda 3a2d b3d keda 3radt akber 10 kiam fe 3amod el conversion¶
x4=x4[x4['Contract Type']==1].nlargest(10,'conversion')
x4
| campaign | Contract Type | conversion | |
|---|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 1 | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 1 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 1 | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 1 | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 1 | 155 |
| 287 | TS_DE_VM_2102_Akquise | 1 | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 1 | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 1 | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 1 | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 1 | 125 |
b3d keda 4elt 3amod el Contract Type 34an mihmne4 fe 7aga 34an 3awez a3red bs kol 7mla e3lania etmda bsbbha kam 3a2d¶
x4=x4[x4['Contract Type']==1].nlargest(10,'conversion').drop(columns='Contract Type')
x4
| campaign | conversion | |
|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 155 |
| 287 | TS_DE_VM_2102_Akquise | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 125 |
x4.columns
Index(['campaign', 'conversion'], dtype='object')
ana hena rasmt column bar chart lel mot3'ier x4 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy conversion we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(x4,x='campaign',y='conversion',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
TALET TARE2A eni hst5dem el function groupby bel tare2a el tanya ma3 el function count() bardo fa 3amlt mot3'ier esmo x5 we 7atet gwah 3dad 3amod el conversion eli hwa no3 el 3a2d fe kol 7amla e3lania ma3 3amod el conversion tany y3ni ma3 kol no3 3a2d we d5lthom fe gdwal we samet 3amod el conversion el tany 'Number of signed offers' bst5dam el function reset_index(name='Number of signed offers') we rtebthom tnazoli men 7es 3amod el Number of signed offers¶
x5=data.groupby(['campaign','conversion'])['conversion'].count().reset_index(name='Number of signed offers').sort_values(by='Number of signed offers',ascending=False)
x5
| campaign | conversion | Number of signed offers | |
|---|---|---|---|
| 290 | TS_DE_VM_2103_Akquise | 0 | 2345 |
| 292 | TS_DE_VM_2104_RMS Attack Independent_Acquisition | 0 | 2344 |
| 101 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 0 | 2290 |
| 18 | BKD_DE_VM_2103_Akquise | 0 | 1884 |
| 20 | BKD_DE_VM_2105_RMS Attack Independent Acquisition | 0 | 1538 |
| ... | ... | ... | ... |
| 357 | TS_DE_VM_2112_RMS Attack Small Franchised Foll... | 1 | 1 |
| 90 | KAM_DE_VM_2006_RALF-TEST_DO-NOT-USE | 1 | 1 |
| 150 | KAM_DE_VM_2111_mobile.de churn Acquisition | 1 | 1 |
| 128 | KAM_DE_VM_2109_RMS Attack Franchised Follow-up | 1 | 1 |
| 355 | TS_DE_VM_2112_RMS Attack Small Franchised Acqu... | 1 | 1 |
381 rows × 3 columns
b3d keda 3amlt filter le 3amod el conversion 34an a3red eli el kima bt3to betsawy 1 bs y3ni el 7amla el e3lania eli bsbbha el 3amel mda 3a2d b3d keda 3radt akber 10 kiam fe 3amod el Number of signed offers¶
x5=x5[x5['conversion']==1].nlargest(10,'Number of signed offers')
x5
| campaign | conversion | Number of signed offers | |
|---|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 1 | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 1 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 1 | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 1 | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 1 | 155 |
| 287 | TS_DE_VM_2102_Akquise | 1 | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 1 | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 1 | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 1 | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 1 | 125 |
b3d keda 4elt 3amod el conversion 34an mihmne4 fe 7aga 34an 3awez a3red bs kol 7mla e3lania etmda bsbbha kam 3a2d¶
x5=x5[x5['conversion']==1].nlargest(10,'Number of signed offers').drop(columns='conversion')
x5
| campaign | Number of signed offers | |
|---|---|---|
| 102 | KAM_DE_VM_2102_Kick Ass Corona Challenge | 408 |
| 98 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 315 |
| 250 | TS_DE_VM_2007_Divide&Conquer_BW | 187 |
| 88 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 163 |
| 1 | BKD_DE_VM_2008_Akquise | 155 |
| 287 | TS_DE_VM_2102_Akquise | 151 |
| 289 | TS_DE_VM_2102_Kick Ass Corona Challenge | 140 |
| 264 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 134 |
| 252 | TS_DE_VM_2007_Divide&Conquer_München | 126 |
| 240 | TS_DE_VM_2003_Sales Challenge | 125 |
x5.columns
Index(['campaign', 'Number of signed offers'], dtype='object')
ana hena rasmt column bar chart lel mot3'ier x4 we 7atet fel x el 3amod el nusy campaign we 7atet fel y el 3amod el rakmy conversion we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh The optimal campaigns for increasing customer size¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(x5,x='campaign',y='Number of signed offers',text_auto='.2s',width=1200,height=600,title='The optimal campaigns for increasing customer size')
7- Define the campaigns due to Customers who have contracts ?¶
hena 3awez el 7mlat el e3lania lel 3omlla eli lehom 32od bs¶
iloc[,] : de e5tsar le integer location we de bst5demha lma akon 3awez ageb a3meda mo3iana we de bta5od sfof we index el a3meda¶
dropna() : de bt4el el NaN y3ni ay kiam fare3'a y3ni ay 0 aw ay nulls¶
ana hena 3awez ageb el 7mlat el e3lania eli feha 3omla2 lehom contracts bs y3ni el 3omla2 eli mado 32od bs fa hageb el data eli t5os el 7mlat el e3lania wel 32od fa 3amlt mot3'ier esmo status we 7atet gwah kol el ssfof le 3amod el campaign eli rakm el index bta3o 3 we men awel 3amod el 'CONTRACTSTATUS_M1' l7ad 3amod el 'CONTRACTSTATUS_M12' y3ni men awel el index 16 l7ad 27 we msa7t el nulls fa 3amlt mot3'ier esmo status 2olt bisawy kol el sfof bta3et el 3wamed eli rakm el index bt3hom bisawy 3 we 16 we 17 we 18 we 19 we 20 we 21 we 22 we 23 we 24 we 25 we 26 we 27 eli gwa el mot3'ier data eli feh el data bt3ty bst5dam el function iloc[,]¶
status=data.iloc[:,[3,16,17,18,19,20,21,22,23,24,25,26,27]]
status
| campaign | CONTRACTSTATUS_M1 | CONTRACTSTATUS_M2 | CONTRACTSTATUS_M3 | CONTRACTSTATUS_M4 | CONTRACTSTATUS_M5 | CONTRACTSTATUS_M6 | CONTRACTSTATUS_M7 | CONTRACTSTATUS_M8 | CONTRACTSTATUS_M9 | CONTRACTSTATUS_M10 | CONTRACTSTATUS_M11 | CONTRACTSTATUS_M12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90155 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90156 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90157 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90158 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
90159 rows × 13 columns
status.dropna(inplace=True)
status
C:\Users\Mazen Sabry\AppData\Local\Temp\ipykernel_17176\1056499725.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
| campaign | CONTRACTSTATUS_M1 | CONTRACTSTATUS_M2 | CONTRACTSTATUS_M3 | CONTRACTSTATUS_M4 | CONTRACTSTATUS_M5 | CONTRACTSTATUS_M6 | CONTRACTSTATUS_M7 | CONTRACTSTATUS_M8 | CONTRACTSTATUS_M9 | CONTRACTSTATUS_M10 | CONTRACTSTATUS_M11 | CONTRACTSTATUS_M12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 89808 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89809 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89810 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89811 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 90084 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
7020 rows × 13 columns
melt de bt3mel unpivot other columns¶
melt(,id_vars='',value_vars=[['','','']],var_name='',value_name='')¶
melt(elmot3'ier eli gwah el data,id_vars='el 3amod eli 3awez asbeto',value_vars=elmot3'ier eli gwah el data[['el3amod elawel eli 3awez a3melo ezaba',''el3amod eltany eli 3awez a3melo ezaba',''el3amod eltalet eli 3awez a3melo ezaba']],var_name='esm el3amod eli 7asl feh el ezaba',value_name='esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba')¶
AWEL TARE2A eni fel value_vars hst5dem function iloc 34an a3mel ezaba lel 3wamed 3n tare2 rakm el index bt3hom : fa 3amlt mot3'ier esmo status we 2olt bisawy melt y3ni ezaba lel mot3'ier status eli gwah el gdwal we fel id_vars 7atet el 3amod eli 3awez asbeto eli hwa hena campaign we fel value_vars 7atet el3wamed eli 3awez a3melhom ezaba fa 2olt a3mel ezaba le kol el sfof lel 3amod el tany eli rakm el index bta3o bisawy 1 l7ad 2a5er 3amod y3ni a3mel ezaba le 3wamed men awel el 3amod CONTRACTSTATUS_M1 l7ad el 3amod CONTRACTSTATUS_M12 we fel var_name 7atet esm el3amod eli 7asl feh el ezaba eli hwa hena mslan ha5leh month we fel value_name 7atet esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba eli hwa hena mslan ha5leh state¶
status=pd.melt(status,id_vars='campaign',value_vars=status.iloc[:,1:],var_name='month',value_name='state')
status
| campaign | month | state | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 2 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 4 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| ... | ... | ... | ... |
| 84235 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84236 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84237 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84238 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84239 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
84240 rows × 3 columns
loc[,] --> de bst54demha lma akon 3awez ageb a3meda mo3iana we de bta5od sfof we asma2 el a3meda¶
dropna() : de bt4el el NaN y3ni ay kiam fare3'a y3ni ay 0 aw ay nulls¶
ana hena 3awez ageb el 7mlat el e3lania eli feha 3omla2 lehom contracts bs y3ni el 3omla2 eli mado 32od bs fa hageb el data eli t5os el 7mlat el e3lania wel 32od fa 3amlt mot3'ier esmo status2 we 7atet gwah kol el sfof le 3amod el campaign we 3amod el CONTRACTSTATUS_M1 we 3amod el CONTRACTSTATUS_M2 we 3amod el CONTRACTSTATUS_M3 we 3amod el CONTRACTSTATUS_M4 we 3amod el CONTRACTSTATUS_M5 we 3amod el CONTRACTSTATUS_M6 we 3amod el CONTRACTSTATUS_M7 we 3amod el CONTRACTSTATUS_M8 we 3amod el CONTRACTSTATUS_M9 we 3amod el CONTRACTSTATUS_M10 we 3amod el CONTRACTSTATUS_M11 we 3amod el CONTRACTSTATUS_M12 eli gwa el mot3'ier data eli feh el data bt3ty bst5dam el function loc[,]¶
status2=data.loc[:,['campaign','CONTRACTSTATUS_M1','CONTRACTSTATUS_M2','CONTRACTSTATUS_M3','CONTRACTSTATUS_M4','CONTRACTSTATUS_M5','CONTRACTSTATUS_M6','CONTRACTSTATUS_M7','CONTRACTSTATUS_M8','CONTRACTSTATUS_M9','CONTRACTSTATUS_M10','CONTRACTSTATUS_M11','CONTRACTSTATUS_M12']]
status2
| campaign | CONTRACTSTATUS_M1 | CONTRACTSTATUS_M2 | CONTRACTSTATUS_M3 | CONTRACTSTATUS_M4 | CONTRACTSTATUS_M5 | CONTRACTSTATUS_M6 | CONTRACTSTATUS_M7 | CONTRACTSTATUS_M8 | CONTRACTSTATUS_M9 | CONTRACTSTATUS_M10 | CONTRACTSTATUS_M11 | CONTRACTSTATUS_M12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90155 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90156 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90157 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90158 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
90159 rows × 13 columns
status2.dropna(inplace=True)
status2
| campaign | CONTRACTSTATUS_M1 | CONTRACTSTATUS_M2 | CONTRACTSTATUS_M3 | CONTRACTSTATUS_M4 | CONTRACTSTATUS_M5 | CONTRACTSTATUS_M6 | CONTRACTSTATUS_M7 | CONTRACTSTATUS_M8 | CONTRACTSTATUS_M9 | CONTRACTSTATUS_M10 | CONTRACTSTATUS_M11 | CONTRACTSTATUS_M12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 89808 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89809 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89810 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89811 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 90084 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
7020 rows × 13 columns
melt de bt3mel unpivot other columns¶
melt(,id_vars='',value_vars=[['','','']],var_name='',value_name='')¶
melt(elmot3'ier eli gwah el data,id_vars='el 3amod eli 3awez asbeto',value_vars=elmot3'ier eli gwah el data[['el3amod elawel eli 3awez a3melo ezaba',''el3amod eltany eli 3awez a3melo ezaba',''el3amod eltalet eli 3awez a3melo ezaba']],var_name='esm el3amod eli 7asl feh el ezaba',value_name='esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba')¶
TANY TARE2A eni fel value_vars hst5dem function loc 34an a3mel ezaba lel 3wamed 3n tare2 asma2 el a3meda : fa 3amlt mot3'ir esmo status2 we 2olt bisway melt y3ni ezaba lel mot3'ier status2 eli gwah el gdwal we fel id_vars 7atet el 3amod eli 3awez asbeto eli hwa hena campaign we fel value_vars 7atet kol el sfof we asma2 el 3wamed eli 3awez a3mlehom ezaba we fel var_name 7atet esm el3amod eli 7asl feh el ezaba eli hwa hena mslan ha5leh month we fel value_name 7atet esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba eli hwa hena mslan ha5leh state¶
status2=pd.melt(status2,id_vars='campaign',value_vars=status2.loc[:,['CONTRACTSTATUS_M1','CONTRACTSTATUS_M2','CONTRACTSTATUS_M3','CONTRACTSTATUS_M4','CONTRACTSTATUS_M5','CONTRACTSTATUS_M6','CONTRACTSTATUS_M7','CONTRACTSTATUS_M8','CONTRACTSTATUS_M9','CONTRACTSTATUS_M10','CONTRACTSTATUS_M11','CONTRACTSTATUS_M12']],var_name='month',value_name='state')
status2
| campaign | month | state | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 2 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 4 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| ... | ... | ... | ... |
| 84235 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84236 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84237 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84238 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84239 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
84240 rows × 3 columns
ana hena ktatbt asma2 el a3mda eli 3awez agebhom 3latol mn 3'er mst5dem loc[,] wla iloc[,]¶
dropna() : de bt4el el NaN y3ni ay kiam fare3'a y3ni ay 0 aw ay nulls¶
ana hena 3awez ageb el 7mlat el e3lania eli feha 3omla2 lehom contracts bs y3ni el 3omla2 eli mado 32od bs fa hageb el data eli t5os el 7mlat el e3lania wel 32od fa 3amlt mot3'ier esmo status2 we 7atet gwah 3amod el campaign we 3amod el CONTRACTSTATUS_M1 we 3amod el CONTRACTSTATUS_M2 we 3amod el CONTRACTSTATUS_M3 we 3amod el CONTRACTSTATUS_M4 we 3amod el CONTRACTSTATUS_M5 we 3amod el CONTRACTSTATUS_M6 we 3amod el CONTRACTSTATUS_M7 we 3amod el CONTRACTSTATUS_M8 we 3amod el CONTRACTSTATUS_M9 we 3amod el CONTRACTSTATUS_M10 we 3amod el CONTRACTSTATUS_M11 we 3amod el CONTRACTSTATUS_M12 eli gwa el mot3'ier data eli feh el data bt3ty¶
status3=data[['campaign','CONTRACTSTATUS_M1','CONTRACTSTATUS_M2','CONTRACTSTATUS_M3','CONTRACTSTATUS_M4','CONTRACTSTATUS_M5','CONTRACTSTATUS_M6','CONTRACTSTATUS_M7','CONTRACTSTATUS_M8','CONTRACTSTATUS_M9','CONTRACTSTATUS_M10','CONTRACTSTATUS_M11','CONTRACTSTATUS_M12']]
status3
| campaign | CONTRACTSTATUS_M1 | CONTRACTSTATUS_M2 | CONTRACTSTATUS_M3 | CONTRACTSTATUS_M4 | CONTRACTSTATUS_M5 | CONTRACTSTATUS_M6 | CONTRACTSTATUS_M7 | CONTRACTSTATUS_M8 | CONTRACTSTATUS_M9 | CONTRACTSTATUS_M10 | CONTRACTSTATUS_M11 | CONTRACTSTATUS_M12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90155 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90156 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90157 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90158 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
90159 rows × 13 columns
status3.dropna(inplace=True)
status3
C:\Users\Mazen Sabry\AppData\Local\Temp\ipykernel_17176\40424018.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
| campaign | CONTRACTSTATUS_M1 | CONTRACTSTATUS_M2 | CONTRACTSTATUS_M3 | CONTRACTSTATUS_M4 | CONTRACTSTATUS_M5 | CONTRACTSTATUS_M6 | CONTRACTSTATUS_M7 | CONTRACTSTATUS_M8 | CONTRACTSTATUS_M9 | CONTRACTSTATUS_M10 | CONTRACTSTATUS_M11 | CONTRACTSTATUS_M12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 89808 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89809 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89810 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 89811 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 90084 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
7020 rows × 13 columns
melt de bt3mel unpivot other columns¶
melt(,id_vars='',value_vars=[['','','']],var_name='',value_name='')¶
melt(elmot3'ier eli gwah el data,id_vars='el 3amod eli 3awez asbeto',value_vars=elmot3'ier eli gwah el data[['el3amod elawel eli 3awez a3melo ezaba',''el3amod eltany eli 3awez a3melo ezaba',''el3amod eltalet eli 3awez a3melo ezaba']],var_name='esm el3amod eli 7asl feh el ezaba',value_name='esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba')¶
TALET TARE2A eni fel value_vars hkteb esm el 3wamed eli 3awez a3melhom ezaba 3latol : fa 3amlt mot3'ier esmo status3 we 2olt bisawy melt y3ni ezaba lel mot3'ier status3 eli gwah el gdwal we fel id_vars 7atet el 3amod eli 3awez asbeto eli hwa hena campaign we fel value_vars 7atet asamy el3wamed eli 3awez a3melhom ezaba we fel var_name 7atet esm el3amod eli 7asl feh el ezaba eli hwa hena mslan ha5leh month we fel value_name 7atet esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba eli hwa hena mslan ha5leh state¶
status3=pd.melt(status3,id_vars='campaign',value_vars=status3[['CONTRACTSTATUS_M1','CONTRACTSTATUS_M2','CONTRACTSTATUS_M3','CONTRACTSTATUS_M4','CONTRACTSTATUS_M5','CONTRACTSTATUS_M6','CONTRACTSTATUS_M7','CONTRACTSTATUS_M8','CONTRACTSTATUS_M9','CONTRACTSTATUS_M10','CONTRACTSTATUS_M11','CONTRACTSTATUS_M12']],var_name='month',value_name='state')
status3
| campaign | month | state | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 2 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| 4 | BKD_DE_VM_2008_Akquise | CONTRACTSTATUS_M1 | 1.0 |
| ... | ... | ... | ... |
| 84235 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84236 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84237 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84238 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
| 84239 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | CONTRACTSTATUS_M12 | 0.0 |
84240 rows × 3 columns
status2['month']=status['month'].str.replace('CONTRACTSTATUS_M','')
status2
| campaign | month | state | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| ... | ... | ... | ... |
| 84235 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84236 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84237 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84238 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84239 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
84240 rows × 3 columns
str.split() : de btefsel 3n tare2 el 7aga eli gwa el akwas y3ni law 2olt str.split(' ') fa hifsel 3n tare2 el msafa we law 2olt str.split('/') hifsel 3n tare2 el 4arta el maila de we hakza¶
str.get() : de m3naha hatli rakm el index eli gwa el akwas y3ni law 2olt str.get(0) fa higebli awel index eli rakmo 0 we law 2olt str.get(1) higebli tany index eli rakmo 1 we hakza¶
str.split('').str.get() : de m3naha eno hifsel 3n tare2 el mwgod gwa el akwas bta3et split('') we hi3red eli rakm el index bta3o gwa el akwas bta3et get()¶
TANY TARE2A eni 5alet 3amod el month eli fel mot3'ier status y3red bs el rakm bst5dam el function str.split('M').str.get(1) : y3ni 2oltelo afsel mn awel 7arf el M l7ad el 2a5er fa fasl klmet 'CONTRACTSTATUS_M' 3n el rakm eli b3dha fa beltaly klmet 'CONTRACTSTATUS_M' b2a rakm el index bt3ha 0 wel rakm b2a rakm el index bta3o 1 fa 3radt eli rakm el index bta3o 1 fa 3ard el arkam bs¶
status['month']=status['month'].str.split('M').str.get(1)
status
| campaign | month | state | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 1 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 2 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 3 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| 4 | BKD_DE_VM_2008_Akquise | 1 | 1.0 |
| ... | ... | ... | ... |
| 84235 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84236 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84237 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84238 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
| 84239 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 12 | 0.0 |
84240 rows × 3 columns
ana hena est5demt el function info() 34an a4of el data types bto3 el 3wamed eli fel gdwal eli gwa el mot3'ier status¶
status.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 84240 entries, 0 to 84239 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 84240 non-null object 1 month 84240 non-null object 2 state 84240 non-null float64 dtypes: float64(1), object(2) memory usage: 1.9+ MB
ana hena 3awez a3raf 3dad el esfar wel w7aied fe kol 4ahr y3ni 3awez a3rf kam 3amel fas5 el 3a2d we kam 3amel fedl mot3aked fe kol 4ahr fa 3amlt mot3'ier esmo test bisawy mekdar tekrar el state fe kol month wel 3amod el gded sameto 'Number of signed contracts & terminated contracts in each month' we rtebto men 7es 3amod el month tnazoli fa hla2y eno mrtebho4 mzbot 34an el data type bta3et 3amod el month kanet object y3ni nus fa hwa mesh ader yrteb el 3amod tnazoli¶
test=status[['month','state']].value_counts().reset_index(name='Number of signed contracts & terminated contracts in each month').sort_values(by='month',ascending=False)
test
| month | state | Number of signed contracts & terminated contracts in each month | |
|---|---|---|---|
| 17 | 9 | 1.0 | 2673 |
| 6 | 9 | 0.0 | 4347 |
| 7 | 8 | 0.0 | 4120 |
| 16 | 8 | 1.0 | 2900 |
| 14 | 7 | 1.0 | 3123 |
| 9 | 7 | 0.0 | 3897 |
| 12 | 6 | 1.0 | 3377 |
| 11 | 6 | 0.0 | 3643 |
| 10 | 5 | 1.0 | 3713 |
| 13 | 5 | 0.0 | 3307 |
| 8 | 4 | 1.0 | 4113 |
| 15 | 4 | 0.0 | 2907 |
| 5 | 3 | 1.0 | 4646 |
| 18 | 3 | 0.0 | 2374 |
| 22 | 2 | 0.0 | 1753 |
| 1 | 2 | 1.0 | 5267 |
| 2 | 12 | 0.0 | 5116 |
| 21 | 12 | 1.0 | 1904 |
| 3 | 11 | 0.0 | 4944 |
| 20 | 11 | 1.0 | 2076 |
| 4 | 10 | 0.0 | 4715 |
| 19 | 10 | 1.0 | 2305 |
| 0 | 1 | 1.0 | 6069 |
| 23 | 1 | 0.0 | 951 |
status['month']=status['month'].astype('int64')
status.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 84240 entries, 0 to 84239 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 84240 non-null object 1 month 84240 non-null int64 2 state 84240 non-null float64 dtypes: float64(1), int64(1), object(1) memory usage: 1.9+ MB
ana hena 3awez a3raf 3dad el esfar wel w7aied fe kol 4ahr y3ni 3awez a3rf kam 3amel fas5 el 3a2d we kam 3amel fedl mot3aked fe kol 4ahr fa 3amlt mot3'ier esmo acc bisawy mekdar tekrar el state fe kol month wel 3amod el gded sameto 'Number of signed contracts & terminated contracts in each month' we rtebto men 7es 3amod el month tnazoli fa hitrteb mzbot 34an el data type bta3et 3amod el month b2et numeric fa 2ader yrtebo tnazoli 3adi¶
acc=status[['month','state']].value_counts().reset_index(name='Number of signed contracts & terminated contracts in each month').sort_values(by='month',ascending=False)
acc
| month | state | Number of signed contracts & terminated contracts in each month | |
|---|---|---|---|
| 21 | 12 | 1.0 | 1904 |
| 2 | 12 | 0.0 | 5116 |
| 3 | 11 | 0.0 | 4944 |
| 20 | 11 | 1.0 | 2076 |
| 4 | 10 | 0.0 | 4715 |
| 19 | 10 | 1.0 | 2305 |
| 6 | 9 | 0.0 | 4347 |
| 17 | 9 | 1.0 | 2673 |
| 7 | 8 | 0.0 | 4120 |
| 16 | 8 | 1.0 | 2900 |
| 14 | 7 | 1.0 | 3123 |
| 9 | 7 | 0.0 | 3897 |
| 12 | 6 | 1.0 | 3377 |
| 11 | 6 | 0.0 | 3643 |
| 13 | 5 | 0.0 | 3307 |
| 10 | 5 | 1.0 | 3713 |
| 15 | 4 | 0.0 | 2907 |
| 8 | 4 | 1.0 | 4113 |
| 18 | 3 | 0.0 | 2374 |
| 5 | 3 | 1.0 | 4646 |
| 1 | 2 | 1.0 | 5267 |
| 22 | 2 | 0.0 | 1753 |
| 0 | 1 | 1.0 | 6069 |
| 23 | 1 | 0.0 | 951 |
ana hrsem line chart 34an a3ber 3n el slasel el zmnia fa yeb2a m3aya line lel 3omala eli fs5o el 3a2d 3la mdar el 4hor we yeb2a m3aya line lel 3omala eli fedlo mot3kden 3la mdar el 4hor fa el legend bta3y hena hib2a 3amod el state eli hy3rfny el 3amel lesa mot3aked wla fas5 el 3a2d fa law 1 yeb2a lesa mot3aked we law 0 yeb2a fas5 el 3a2d we fel x ha7ot 3amod el month eli feh el 4hor we fel y ha7ot el 3amod el gded eli feh mkdar tekrar kol state fe kol month y3ni el 3amod eli feh 3dad el 3omala eli fedlo mot3kden we 3dad el 3omala eli fs5o el 3a2d fe kol 4ahr¶
ana hena rasmt Line chart lel mot3'ier acc we 7atet fel x 3amod el "month" we 7atet fel y 3amod el "Number of signed contracts & terminated contracts in each month" we 7atet fel color 3amod el state 34an yeb2a hwa el legend bta3y eli by3rfny el 3amel lesa mot3aked wla fas5 el 3a2d fa law 1 yeb2a lesa mot3aked we law 0 yeb2a fas5 el 3a2d we 5alet 3ard el chart 1100 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo Number of signed Contracts & terminated contracts in each month" we 3amlt marker lel 5tot, fa hla2y en bmror el zamn el 3omla2 bifs5o el 3a2d y3ni mslan fe 4ahr wa7ed 3dad el 3omla eli fas5o 951 we 3dad el 3omla eli fedlo mot3kden m3aya 6069 we fe 4ahr 2 3dad el 3omla eli fas5o 1753 we 3dad el 3omla eli fedlo mot3kden m3aya 5267 we fe 4ahr 3 3dad el 3omla eli fas5o 2374 we 3dad el 3omla eli fedlo mot3kden m3aya 4646 we fe 2a5er 4ahr eli hwa 4ahr 12 3dad el 3omla eli fas5o el 3a2d zad gedan l7ad ma weslo 5116 we 3dad el 3omla eli fedlo mot3kden m3aya 2lo gedan l7ad ma weslo 1904¶
px.line(acc,x='month',y='Number of signed contracts & terminated contracts in each month',color='state',width=1100,height=600,title='Number of signed Contracts & terminated contracts in each month',markers=True)
data
| SEGMENT | campaignstartdate | campaignenddate | campaign | progress | STATUS | contacted | conversion | cr2 basis | REJECTIONREASON | ... | Classified UndisRev M10 | Classified Rev M11 | Classified UndisRev M11 | Classified Rev M12 | Classified UndisRev M12 | Classified Rev M13 | Classified UndisRev M13 | Classified Rev M14 | Classified UndisRev M14 | Campaign_Duration | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 69.9 | 119.0 | 66 days |
| 1 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 66 days |
| 2 | Small Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 66 days |
| 3 | Franchised Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 66 days |
| 4 | Independent Dealers | 2020-07-31 | 2020-10-05 | BKD_DE_VM_2008_Akquise | 3 completed | Offer Signed | 1 | 1 | 1 | NaN | ... | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 | 139.0 | 66 days |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90155 | Independent Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90156 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | No Interest | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90157 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 2 in progress | Not Reached | 0 | 0 | 0 | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
| 90158 | Schotterplatz Dealers | 2021-07-29 | 2021-08-19 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | 3 completed | Rejected | 1 | 0 | 1 | Export Business | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 21 days |
90159 rows × 78 columns
8- Which campaign/campaign offer/sales channel would be the optimal to use If the primary goal is to increase revenue ?¶
el so2al hena by2ol anhy 7mla e3lania bete5ale 3dad el arba7 yzed?¶
el tfker el manteky eni ageb mgmo3 el arba7 b3d el 5asm le kol campaign 34an a3rf anhy 7amla e3lania bete5ale 3dad el arba7 yzed¶
iloc[,] : de e5tsar le integer location we de bst5demha lma akon 3awez ageb a3meda mo3iana we de bta5od sfof we index el a3meda¶
dropna() : de bt4el el NaN y3ni ay kiam fare3'a y3ni ay 0 aw ay nulls¶
ana hena 3awez ageb el 7mlat el e3lania eli bet5ali el arba7 tzed fa hageb el data eli t5os el 7mlat el e3lania wel arba7 b3d el 5asm fa 3amlt mot3'ier esmo revenue we 7atet gwah kol el sfof le 3amod el campaign eli rakm el index bta3o 3 we men awel 3amod el 'Classified Rev M0' l7ad 3amod el 'Classified Rev M14' y3ni men awel el index 47 l7ad 75 fa 3amlt mot3'ier esmo revenue 2olt bisawy iloc kol el sfof bta3et el 3wamed eli rakm el index bt3hom bisawy 3 we 47 we 49 we 51 we 53 we 55 we 57 we 59 61 we 63 we 65 we 67 we 69 we 71 we 73 we 75 eli gwa el mot3'ier data eli feh el data bt3ty bst5dam el function iloc[,]¶
revenue=data.iloc[:,[3,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75]]
revenue
| campaign | Classified Rev M0 | Classified Rev M1 | Classified Rev M2 | Classified Rev M3 | Classified Rev M4 | Classified Rev M5 | Classified Rev M6 | Classified Rev M7 | Classified Rev M8 | Classified Rev M9 | Classified Rev M10 | Classified Rev M11 | Classified Rev M12 | Classified Rev M13 | Classified Rev M14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 99.50 | 99.5 | 99.5 | 99.5 | 99.5 | 99.5 | 199.0 | 199.0 | 199.0 | 199.0 | 69.9 | 69.9 | 69.9 | 69.9 | 69.9 |
| 1 | BKD_DE_VM_2008_Akquise | 59.50 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 2 | BKD_DE_VM_2008_Akquise | 29.75 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 |
| 3 | BKD_DE_VM_2008_Akquise | 40.30 | 59.5 | 0.0 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 4 | BKD_DE_VM_2008_Akquise | 57.51 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90155 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90156 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90157 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90158 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
90159 rows × 16 columns
revenue.dropna(inplace=True)
revenue
C:\Users\Mazen Sabry\AppData\Local\Temp\ipykernel_17176\4201926819.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
| campaign | Classified Rev M0 | Classified Rev M1 | Classified Rev M2 | Classified Rev M3 | Classified Rev M4 | Classified Rev M5 | Classified Rev M6 | Classified Rev M7 | Classified Rev M8 | Classified Rev M9 | Classified Rev M10 | Classified Rev M11 | Classified Rev M12 | Classified Rev M13 | Classified Rev M14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 99.50 | 99.5 | 99.50 | 99.50 | 99.5 | 99.5 | 199.0 | 199.0 | 199.0 | 199.0 | 69.9 | 69.9 | 69.9 | 69.9 | 69.9 |
| 2 | BKD_DE_VM_2008_Akquise | 29.75 | 59.5 | 59.50 | 59.50 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 |
| 4 | BKD_DE_VM_2008_Akquise | 57.51 | 59.5 | 59.50 | 59.50 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 |
| 10 | BKD_DE_VM_2008_Akquise | 138.00 | 64.5 | 89.00 | 51.60 | 38.7 | 77.4 | 64.5 | 89.0 | 89.0 | 12.9 | 89.0 | 64.5 | 38.7 | 38.7 | 0.0 |
| 11 | BKD_DE_VM_2008_Akquise | 18.00 | 139.5 | 139.50 | 139.50 | 139.5 | 139.5 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 56432 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 98.0 | 132.3 | 186.2 | 88.2 | 68.6 | 73.5 | 176.4 | 189.0 | 189.0 | 189.0 | 189.0 |
| 56434 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 33.80 | 33.80 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 |
| 56438 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 132.3 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 |
| 56441 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 189.0 | 189.0 | 189.0 | 132.3 | 189.0 | 189.0 | 151.9 | 9.9 | 189.0 | 189.0 | 189.0 |
| 57778 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 0.00 | 0.0 | 33.80 | 29.40 | 78.4 | 68.6 | 53.9 | 78.4 | 39.2 | 39.2 | 68.6 | 69.3 | 89.0 | 79.2 | 89.0 |
1352 rows × 16 columns
b3d keda 3awez a3mel unpivot lel 3wamed eli feha el arba4 b3d el 5asm le kol el 4hor b7es ykono fe 3amod wa7ed¶
melt de bt3mel unpivot other columns¶
melt(,id_vars='',value_vars=[['','','']],var_name='',value_name='')¶
melt(elmot3'ier eli gwah el data,id_vars='el 3amod eli 3awez asbeto',value_vars=elmot3'ier eli gwah el data[['el3amod elawel eli 3awez a3melo ezaba',''el3amod eltany eli 3awez a3melo ezaba',''el3amod eltalet eli 3awez a3melo ezaba']],var_name='esm el3amod eli 7asl feh el ezaba',value_name='esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba')¶
AWEL TARE2A eni fel value_vars hst5dem function iloc 34an a3mel ezaba lel 3wamed 3n tare2 rakm el index bt3hom : fa 3amlt mot3'ier esmo revenue we 2olt bisawy melt y3ni ezaba lel mot3'ier revenue eli gwah el gdwal we fel id_vars 7atet el 3amod eli 3awez asbeto eli hwa hena campaign we fel value_vars 7atet el3wamed eli 3awez a3melhom ezaba fa 2olt a3mel ezaba le kol el sfof lel 3amod el tany eli rakm el index bta3o bisawy 1 l7ad 2a5er 3amod y3ni a3mel ezaba le 3wamed men awel el 3amod Classified Rev M0 l7ad el 3amod Classified Rev M14 we fel var_name 7atet esm el3amod eli 7asl feh el ezaba eli hwa hena mslan ha5leh month we fel value_name 7atet esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba eli hwa hena mslan ha5leh Total¶
revenue=pd.melt(revenue,id_vars='campaign',value_vars=revenue.iloc[:,1:],var_name='month',value_name='Total')
revenue
| campaign | month | Total | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 99.50 |
| 1 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 29.75 |
| 2 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 57.51 |
| 3 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 138.00 |
| 4 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 18.00 |
| ... | ... | ... | ... |
| 20275 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20276 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 89.00 |
| 20277 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20278 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | Classified Rev M14 | 89.00 |
20280 rows × 3 columns
loc[,] --> de bst54demha lma akon 3awez ageb a3meda mo3iana we de bta5od sfof we asma2 el a3meda¶
ana hena 3awez ageb el 7mlat el e3lania eli bet5ali el arba7 tzed fa hageb el data eli t5os el 7mlat el e3lania wel arba7 b3d el 5asm fa 3amlt mot3'ier esmo revenue2 we 7atet gwah kol el sfof le 3amod el campaign we 3amod el Classified Rev M0 we 3amod el Classified Rev M1 we 3amod el Classified Rev M2 we 3amod el Classified Rev M3 we 3amod el Classified Rev M4 we 3amod el Classified Rev M5 we 3amod el Classified Rev M6 we 3amod el Classified Rev M7 we 3amod el Classified Rev M8 we 3amod el Classified Rev M9 we 3amod el Classified Rev M10 we 3amod el Classified Rev M11 we 3amod el Classified Rev M12 we 3amod el Classified Rev M13 we 3amod el Classified Rev M14 eli gwa el mot3'ier data eli feh el data bt3ty bst5dam el function loc[,]¶
revenue2=data.loc[:,['campaign','Classified Rev M0','Classified Rev M1','Classified Rev M2','Classified Rev M3','Classified Rev M4','Classified Rev M5','Classified Rev M6','Classified Rev M7','Classified Rev M8','Classified Rev M9','Classified Rev M10','Classified Rev M11','Classified Rev M12','Classified Rev M13','Classified Rev M14']]
revenue2
| campaign | Classified Rev M0 | Classified Rev M1 | Classified Rev M2 | Classified Rev M3 | Classified Rev M4 | Classified Rev M5 | Classified Rev M6 | Classified Rev M7 | Classified Rev M8 | Classified Rev M9 | Classified Rev M10 | Classified Rev M11 | Classified Rev M12 | Classified Rev M13 | Classified Rev M14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 99.50 | 99.5 | 99.5 | 99.5 | 99.5 | 99.5 | 199.0 | 199.0 | 199.0 | 199.0 | 69.9 | 69.9 | 69.9 | 69.9 | 69.9 |
| 1 | BKD_DE_VM_2008_Akquise | 59.50 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 2 | BKD_DE_VM_2008_Akquise | 29.75 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 |
| 3 | BKD_DE_VM_2008_Akquise | 40.30 | 59.5 | 0.0 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 4 | BKD_DE_VM_2008_Akquise | 57.51 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90155 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90156 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90157 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90158 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
90159 rows × 16 columns
revenue2.dropna(inplace=True)
revenue2
| campaign | Classified Rev M0 | Classified Rev M1 | Classified Rev M2 | Classified Rev M3 | Classified Rev M4 | Classified Rev M5 | Classified Rev M6 | Classified Rev M7 | Classified Rev M8 | Classified Rev M9 | Classified Rev M10 | Classified Rev M11 | Classified Rev M12 | Classified Rev M13 | Classified Rev M14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 99.50 | 99.5 | 99.50 | 99.50 | 99.5 | 99.5 | 199.0 | 199.0 | 199.0 | 199.0 | 69.9 | 69.9 | 69.9 | 69.9 | 69.9 |
| 2 | BKD_DE_VM_2008_Akquise | 29.75 | 59.5 | 59.50 | 59.50 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 |
| 4 | BKD_DE_VM_2008_Akquise | 57.51 | 59.5 | 59.50 | 59.50 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 |
| 10 | BKD_DE_VM_2008_Akquise | 138.00 | 64.5 | 89.00 | 51.60 | 38.7 | 77.4 | 64.5 | 89.0 | 89.0 | 12.9 | 89.0 | 64.5 | 38.7 | 38.7 | 0.0 |
| 11 | BKD_DE_VM_2008_Akquise | 18.00 | 139.5 | 139.50 | 139.50 | 139.5 | 139.5 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 56432 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 98.0 | 132.3 | 186.2 | 88.2 | 68.6 | 73.5 | 176.4 | 189.0 | 189.0 | 189.0 | 189.0 |
| 56434 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 33.80 | 33.80 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 |
| 56438 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 132.3 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 |
| 56441 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 189.0 | 189.0 | 189.0 | 132.3 | 189.0 | 189.0 | 151.9 | 9.9 | 189.0 | 189.0 | 189.0 |
| 57778 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 0.00 | 0.0 | 33.80 | 29.40 | 78.4 | 68.6 | 53.9 | 78.4 | 39.2 | 39.2 | 68.6 | 69.3 | 89.0 | 79.2 | 89.0 |
1352 rows × 16 columns
melt de bt3mel unpivot other columns¶
melt(,id_vars='',value_vars=[['','','']],var_name='',value_name='')¶
melt(elmot3'ier eli gwah el data,id_vars='el 3amod eli 3awez asbeto',value_vars=elmot3'ier eli gwah el data[['el3amod elawel eli 3awez a3melo ezaba',''el3amod eltany eli 3awez a3melo ezaba',''el3amod eltalet eli 3awez a3melo ezaba']],var_name='esm el3amod eli 7asl feh el ezaba',value_name='esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba')¶
TANY TARE2A eni fel value_vars hst5dem function loc 34an a3mel ezaba lel 3wamed 3n tare2 asma2 el a3meda : fa 3amlt mot3'ir esmo revenue2 we 2olt bisway melt y3ni ezaba lel mot3'ier revenue2 eli gwah el gdwal we fel id_vars 7atet el 3amod eli 3awez asbeto eli hwa hena campaign we fel value_vars 7atet kol el sfof we asma2 el 3wamed eli 3awez a3mlehom ezaba we fel var_name 7atet esm el3amod eli 7asl feh el ezaba eli hwa hena mslan ha5leh month we fel value_name 7atet esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba eli hwa hena mslan ha5leh Total¶
revenue2=pd.melt(revenue2,id_vars='campaign',value_vars=revenue2.loc[:,['Classified Rev M0','Classified Rev M1','Classified Rev M2','Classified Rev M3','Classified Rev M4','Classified Rev M5','Classified Rev M6','Classified Rev M7','Classified Rev M8','Classified Rev M9','Classified Rev M10','Classified Rev M11','Classified Rev M12','Classified Rev M13','Classified Rev M14']],var_name='month',value_name='Total')
revenue2
| campaign | month | Total | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 99.50 |
| 1 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 29.75 |
| 2 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 57.51 |
| 3 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 138.00 |
| 4 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 18.00 |
| ... | ... | ... | ... |
| 20275 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20276 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 89.00 |
| 20277 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20278 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | Classified Rev M14 | 89.00 |
20280 rows × 3 columns
ana hena ktatbt asma2 el a3mda eli 3awez agebhom 3latol mn 3'er mst5dem loc[,] wla iloc[,]¶
dropna() : de bt4el el NaN y3ni ay kiam fare3'a y3ni ay 0 aw ay nulls¶
ana hena 3awez ageb el 7mlat el e3lania eli bet5ali el arba7 tzed fa hageb el data eli t5os el 7mlat el e3lania wel arba7 b3d el 5asm fa 3amlt mot3'ier esmo revenue3 we 7atet gwah 3amod el campaign we 3amod el Classified Rev M0 we 3amod el Classified Rev M1 we 3amod el Classified Rev M2 we 3amod el Classified Rev M3 we 3amod el Classified Rev M4 we 3amod el Classified Rev M5 we 3amod el Classified Rev M6 we 3amod el Classified Rev M7 we 3amod el Classified Rev M8 we 3amod el Classified Rev M9 we 3amod el Classified Rev M10 we 3amod el Classified Rev M11 we 3amod el Classified Rev M12 we 3amod el Classified Rev M13 we 3amod el Classified Rev M14 eli gwa el mot3'ier data eli feh el data bt3ty¶
revenue3=data[['campaign','Classified Rev M0','Classified Rev M1','Classified Rev M2','Classified Rev M3','Classified Rev M4','Classified Rev M5','Classified Rev M6','Classified Rev M7','Classified Rev M8','Classified Rev M9','Classified Rev M10','Classified Rev M11','Classified Rev M12','Classified Rev M13','Classified Rev M14']]
revenue3
| campaign | Classified Rev M0 | Classified Rev M1 | Classified Rev M2 | Classified Rev M3 | Classified Rev M4 | Classified Rev M5 | Classified Rev M6 | Classified Rev M7 | Classified Rev M8 | Classified Rev M9 | Classified Rev M10 | Classified Rev M11 | Classified Rev M12 | Classified Rev M13 | Classified Rev M14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 99.50 | 99.5 | 99.5 | 99.5 | 99.5 | 99.5 | 199.0 | 199.0 | 199.0 | 199.0 | 69.9 | 69.9 | 69.9 | 69.9 | 69.9 |
| 1 | BKD_DE_VM_2008_Akquise | 59.50 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 2 | BKD_DE_VM_2008_Akquise | 29.75 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 |
| 3 | BKD_DE_VM_2008_Akquise | 40.30 | 59.5 | 0.0 | 0.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 4 | BKD_DE_VM_2008_Akquise | 57.51 | 59.5 | 59.5 | 59.5 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90154 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90155 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90156 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90157 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 90158 | Webhelp_DE_VM_2108_RMS Attack Schotterplatz Fo... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
90159 rows × 16 columns
revenue3.dropna(inplace=True)
revenue3
C:\Users\Mazen Sabry\AppData\Local\Temp\ipykernel_17176\3159183598.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
| campaign | Classified Rev M0 | Classified Rev M1 | Classified Rev M2 | Classified Rev M3 | Classified Rev M4 | Classified Rev M5 | Classified Rev M6 | Classified Rev M7 | Classified Rev M8 | Classified Rev M9 | Classified Rev M10 | Classified Rev M11 | Classified Rev M12 | Classified Rev M13 | Classified Rev M14 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 99.50 | 99.5 | 99.50 | 99.50 | 99.5 | 99.5 | 199.0 | 199.0 | 199.0 | 199.0 | 69.9 | 69.9 | 69.9 | 69.9 | 69.9 |
| 2 | BKD_DE_VM_2008_Akquise | 29.75 | 59.5 | 59.50 | 59.50 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 |
| 4 | BKD_DE_VM_2008_Akquise | 57.51 | 59.5 | 59.50 | 59.50 | 59.5 | 59.5 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 119.0 | 139.0 | 139.0 | 139.0 |
| 10 | BKD_DE_VM_2008_Akquise | 138.00 | 64.5 | 89.00 | 51.60 | 38.7 | 77.4 | 64.5 | 89.0 | 89.0 | 12.9 | 89.0 | 64.5 | 38.7 | 38.7 | 0.0 |
| 11 | BKD_DE_VM_2008_Akquise | 18.00 | 139.5 | 139.50 | 139.50 | 139.5 | 139.5 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 | 279.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 56432 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 98.0 | 132.3 | 186.2 | 88.2 | 68.6 | 73.5 | 176.4 | 189.0 | 189.0 | 189.0 | 189.0 |
| 56434 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 33.80 | 33.80 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 | 89.0 |
| 56438 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 132.3 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 | 189.0 |
| 56441 | TS_DE_VM_2009_Herbstchallenge | 0.00 | 0.0 | 71.78 | 71.78 | 189.0 | 189.0 | 189.0 | 132.3 | 189.0 | 189.0 | 151.9 | 9.9 | 189.0 | 189.0 | 189.0 |
| 57778 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 0.00 | 0.0 | 33.80 | 29.40 | 78.4 | 68.6 | 53.9 | 78.4 | 39.2 | 39.2 | 68.6 | 69.3 | 89.0 | 79.2 | 89.0 |
1352 rows × 16 columns
b3d keda 3awez a3mel unpivot lel 3wamed eli feha el arba4 b3d el 5asm le kol el 4hor b7es ykono fe 3amod wa7ed¶
melt de bt3mel unpivot other columns¶
melt(,id_vars='',value_vars=[['','','']],var_name='',value_name='')¶
melt(elmot3'ier eli gwah el data,id_vars='el 3amod eli 3awez asbeto',value_vars=elmot3'ier eli gwah el data[['el3amod elawel eli 3awez a3melo ezaba',''el3amod eltany eli 3awez a3melo ezaba',''el3amod eltalet eli 3awez a3melo ezaba']],var_name='esm el3amod eli 7asl feh el ezaba',value_name='esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba')¶
TALET TARE2A eni fel value_vars hkteb esm el 3wamed eli 3awez a3melhom ezaba 3latol : fa 3amlt mot3'ier esmo revenue3 we 2olt bisawy melt y3ni ezaba lel mot3'ier revenue3 eli gwah el gdwal we fel id_vars 7atet el 3amod eli 3awez asbeto eli hwa hena campaign we fel value_vars 7atet asamy el3wamed eli 3awez a3melhom ezaba we fel var_name 7atet esm el3amod eli 7asl feh el ezaba eli hwa hena mslan ha5leh month we fel value_name 7atet esm el3amod eli gwah el values bta3 el3amod eli 7asl feh ezaba eli hwa hena mslan ha5leh Total¶
revenue3=pd.melt(revenue3,id_vars='campaign',value_vars=revenue3[['Classified Rev M0','Classified Rev M1','Classified Rev M2','Classified Rev M3','Classified Rev M4','Classified Rev M5','Classified Rev M6','Classified Rev M7','Classified Rev M8','Classified Rev M9','Classified Rev M10','Classified Rev M11','Classified Rev M12','Classified Rev M13','Classified Rev M14']],var_name='month',value_name='Total')
revenue3
| campaign | month | Total | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 99.50 |
| 1 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 29.75 |
| 2 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 57.51 |
| 3 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 138.00 |
| 4 | BKD_DE_VM_2008_Akquise | Classified Rev M0 | 18.00 |
| ... | ... | ... | ... |
| 20275 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20276 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 89.00 |
| 20277 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20278 | TS_DE_VM_2009_Herbstchallenge | Classified Rev M14 | 189.00 |
| 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | Classified Rev M14 | 89.00 |
20280 rows × 3 columns
revenue2['month']=revenue2['month'].str.replace('Classified Rev M','')
revenue2.reset_index()
| index | campaign | month | Total | |
|---|---|---|---|---|
| 0 | 0 | BKD_DE_VM_2008_Akquise | 0 | 99.50 |
| 1 | 1 | BKD_DE_VM_2008_Akquise | 0 | 29.75 |
| 2 | 2 | BKD_DE_VM_2008_Akquise | 0 | 57.51 |
| 3 | 3 | BKD_DE_VM_2008_Akquise | 0 | 138.00 |
| 4 | 4 | BKD_DE_VM_2008_Akquise | 0 | 18.00 |
| ... | ... | ... | ... | ... |
| 20275 | 20275 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20276 | 20276 | TS_DE_VM_2009_Herbstchallenge | 14 | 89.00 |
| 20277 | 20277 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20278 | 20278 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20279 | 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 14 | 89.00 |
20280 rows × 4 columns
str.split() : de btefsel 3n tare2 el 7aga eli gwa el akwas y3ni law 2olt str.split(' ') fa hifsel 3n tare2 el msafa we law 2olt str.split('/') hifsel 3n tare2 el 4arta el maila de we hakza¶
str.get() : de m3naha hatli rakm el index eli gwa el akwas y3ni law 2olt str.get(0) fa higebli awel index eli rakmo 0 we law 2olt str.get(1) higebli tany index eli rakmo 1 we hakza¶
str.split('').str.get() : de m3naha eno hifsel 3n tare2 el mwgod gwa el akwas bta3et split('') we hi3red eli rakm el index bta3o gwa el akwas bta3et get()¶
TANY TARE2A eni 5alet 3amod el month eli fel mot3'ier revenue3 y3red bs el rakm bst5dam el function str.split('M').str.get(1) : y3ni 2oltelo afsel mn awel 7arf el M l7ad el 2a5er fa fasl klmet 'Classified Rev M' 3n el rakm eli b3dha fa beltaly klmet 'Classified Rev M' b2a rakm el index bt3ha 0 wel rakm b2a rakm el index bta3o 1 fa 3radt eli rakm el index bta3o 1 fa 3ard el arkam bs¶
revenue3['month']=revenue3['month'].str.split('M').str.get(1)
revenue3.reset_index()
| index | campaign | month | Total | |
|---|---|---|---|---|
| 0 | 0 | BKD_DE_VM_2008_Akquise | 0 | 99.50 |
| 1 | 1 | BKD_DE_VM_2008_Akquise | 0 | 29.75 |
| 2 | 2 | BKD_DE_VM_2008_Akquise | 0 | 57.51 |
| 3 | 3 | BKD_DE_VM_2008_Akquise | 0 | 138.00 |
| 4 | 4 | BKD_DE_VM_2008_Akquise | 0 | 18.00 |
| ... | ... | ... | ... | ... |
| 20275 | 20275 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20276 | 20276 | TS_DE_VM_2009_Herbstchallenge | 14 | 89.00 |
| 20277 | 20277 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20278 | 20278 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20279 | 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 14 | 89.00 |
20280 rows × 4 columns
ana hena est5demt el function info() 34an a3rf el data types bto3 el colums eli 3ndy fa la2et en 3amod el month 3obara 3n object y3ni nus fa lma agy artebo mesh hitrteb mzbot fa lazem a7welo le int64 34an yeb2a numeric fa ytrteb mzbot¶
revenue2.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 20280 entries, 0 to 20279 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 20280 non-null object 1 month 20280 non-null object 2 Total 20280 non-null float64 dtypes: float64(1), object(2) memory usage: 475.4+ KB
revenue3.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 20280 entries, 0 to 20279 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 20280 non-null object 1 month 20280 non-null object 2 Total 20280 non-null float64 dtypes: float64(1), object(2) memory usage: 475.4+ KB
revenue2['month']=revenue2['month'].astype('int64')
revenue2.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 20280 entries, 0 to 20279 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 20280 non-null object 1 month 20280 non-null int64 2 Total 20280 non-null float64 dtypes: float64(1), int64(1), object(1) memory usage: 475.4+ KB
revenue3['month']=revenue3['month'].astype('int64')
revenue3.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 20280 entries, 0 to 20279 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 campaign 20280 non-null object 1 month 20280 non-null int64 2 Total 20280 non-null float64 dtypes: float64(1), int64(1), object(1) memory usage: 475.4+ KB
ana hena est5demt el function sort_values(by='month',ascending=False) 34an arteb 3amod el month tnazoli¶
revenue2.sort_values(by='month',ascending=False)
| campaign | month | Total | |
|---|---|---|---|
| 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 14 | 89.0 |
| 19381 | TS_DE_VM_1907_Akquise_KW31 | 14 | 169.0 |
| 19373 | TS_DE_VM_1907_Akquise_KW31 | 14 | 99.0 |
| 19374 | TS_DE_VM_1907_Akquise_KW31 | 14 | 169.0 |
| 19375 | TS_DE_VM_1907_Akquise_KW31 | 14 | 329.0 |
| ... | ... | ... | ... |
| 903 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 904 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 905 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 906 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 0 | BKD_DE_VM_2008_Akquise | 0 | 99.5 |
20280 rows × 3 columns
revenue3.sort_values(by='month',ascending=False)
| campaign | month | Total | |
|---|---|---|---|
| 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 14 | 89.0 |
| 19381 | TS_DE_VM_1907_Akquise_KW31 | 14 | 169.0 |
| 19373 | TS_DE_VM_1907_Akquise_KW31 | 14 | 99.0 |
| 19374 | TS_DE_VM_1907_Akquise_KW31 | 14 | 169.0 |
| 19375 | TS_DE_VM_1907_Akquise_KW31 | 14 | 329.0 |
| ... | ... | ... | ... |
| 903 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 904 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 905 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 906 | TS_DE_VM_2003_Sales Challenge | 0 | 0.0 |
| 0 | BKD_DE_VM_2008_Akquise | 0 | 99.5 |
20280 rows × 3 columns
Grouping data¶
1- data['3amod rakmy'].groupby(data['3amod nusy']).esm el function¶
2- data.groupby('3amod nusy')['3amod rakmy'].esm el function¶
AWEL TARE2A eni hst5dem el function groupby bel tare2a el 2ola ma3 el function sum() fa 3amlt mot3'ier esmo rev5 we 7atet gwah mgmo3 el arba7 fe kol 4ahr we d5lthom fe gdwal we samet el 3amod da 'Revenue by months' bst5dam el function reset_index(name='Revenue by months') we rtebthom tnazoli men 7es 3amod el Revenue by months¶
rev5=revenue3['Total'].groupby(revenue3['month']).sum().reset_index(name='Revenue by months').sort_values(by='Revenue by months',ascending=False)
rev5
| month | Revenue by months | |
|---|---|---|
| 14 | 14 | 340596.86 |
| 11 | 11 | 334552.31 |
| 13 | 13 | 330266.13 |
| 12 | 12 | 324642.43 |
| 10 | 10 | 291919.12 |
| 9 | 9 | 281656.16 |
| 8 | 8 | 267809.64 |
| 7 | 7 | 258635.66 |
| 6 | 6 | 221678.37 |
| 5 | 5 | 171823.68 |
| 4 | 4 | 171134.49 |
| 3 | 3 | 147734.59 |
| 2 | 2 | 79158.26 |
| 1 | 1 | 58859.03 |
| 0 | 0 | 28920.15 |
Grouping data¶
1- data['3amod rakmy'].groupby(data['3amod nusy']).esm el function¶
2- data.groupby('3amod nusy')['3amod rakmy'].esm el function¶
TANY TARE2A eni hst5dem el function groupby bel tare2a el tanya ma3 el function sum() fa 3amlt mot3'ier esmo rev6 we 7atet gwah mgmo3 el arba7 fe kol 4ahr we d5lthom fe gdwal we samet el 3amod da 'Revenue by months' bst5dam el function reset_index(name='Revenue by months') we rtebthom tnazoli men 7es 3amod el Revenue by months¶
rev6=revenue2.groupby('month')['Total'].sum().reset_index(name='Revenue by months').sort_values(by='Revenue by months',ascending=False)
rev6
| month | Revenue by months | |
|---|---|---|
| 14 | 14 | 340596.86 |
| 11 | 11 | 334552.31 |
| 13 | 13 | 330266.13 |
| 12 | 12 | 324642.43 |
| 10 | 10 | 291919.12 |
| 9 | 9 | 281656.16 |
| 8 | 8 | 267809.64 |
| 7 | 7 | 258635.66 |
| 6 | 6 | 221678.37 |
| 5 | 5 | 171823.68 |
| 4 | 4 | 171134.49 |
| 3 | 3 | 147734.59 |
| 2 | 2 | 79158.26 |
| 1 | 1 | 58859.03 |
| 0 | 0 | 28920.15 |
ana hrsem Line chart 34an a3ber 3n el arba7 bmror el zamn fa yeb2a m3aya line lel arba7 3la mdar el 4hor we fel x ha7ot 3amod el month eli feh el 4hor we fel y ha7ot el 3amod el gded eli feh mgmo3 el arba7 fe kol 4ahr¶
ana hena rasmt Line chart lel mot3'ier rev5 we 7atet fel x 3amod el "month" we 7atet fel y 3amod el "Revenue by months" we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "Total revenue by months" we 3amlt marker lel 5tot, fa hla2y en bmror el zamn el arba7 btzed y3ni mslan fel 4ahr ZERO el arba7 kanet 28920.15 we fel 4ahr 1 el arba7 kanet 58859.03 6 fel 4ahr 2 el arba7 kanet 79158.26 y3ni 3mala btzed kol 4ahr bs alet fe 4ahr 11 kanet 334552.31 we e fe 2a5er 4ahr eli hwa 4a4rel arba7 zadet b2et 340596.86¶
px.line(rev5,x='month',y='Revenue by months',width=1200,height=600,title='Total revenue by months',markers=True)
b3d keda 34an a3rf anhy 7amla e3lania to2ady ela ziadet el arba7 h3mel groupby ben el campaign wel total eli gwa el mot3'ier revenue2 aw revenue3 fa 3amlt mot3'ier gded esmo rev10 we 7atet gwah mgmo3 el arba7 le kol 7ma e3lania we 7atethom fe gdwal we samet el 3amod eli feh mgmo3 el arba7 "Revenue Summation for each campaign" bst5dam el function reset_index(name='Revenue Summation for each campaign') we rtebthom men 7es 3amod el "Revenue Summation for each campaign" tnazoli we 3radt awel 5¶
revenue2
| campaign | month | Total | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 0 | 99.50 |
| 1 | BKD_DE_VM_2008_Akquise | 0 | 29.75 |
| 2 | BKD_DE_VM_2008_Akquise | 0 | 57.51 |
| 3 | BKD_DE_VM_2008_Akquise | 0 | 138.00 |
| 4 | BKD_DE_VM_2008_Akquise | 0 | 18.00 |
| ... | ... | ... | ... |
| 20275 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20276 | TS_DE_VM_2009_Herbstchallenge | 14 | 89.00 |
| 20277 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20278 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 14 | 89.00 |
20280 rows × 3 columns
revenue3
| campaign | month | Total | |
|---|---|---|---|
| 0 | BKD_DE_VM_2008_Akquise | 0 | 99.50 |
| 1 | BKD_DE_VM_2008_Akquise | 0 | 29.75 |
| 2 | BKD_DE_VM_2008_Akquise | 0 | 57.51 |
| 3 | BKD_DE_VM_2008_Akquise | 0 | 138.00 |
| 4 | BKD_DE_VM_2008_Akquise | 0 | 18.00 |
| ... | ... | ... | ... |
| 20275 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20276 | TS_DE_VM_2009_Herbstchallenge | 14 | 89.00 |
| 20277 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20278 | TS_DE_VM_2009_Herbstchallenge | 14 | 189.00 |
| 20279 | TS_DE_VM_2010_Divide&Conquer_Rest Deutschland | 14 | 89.00 |
20280 rows × 3 columns
rev10=revenue2.groupby('campaign')['Total'].sum().reset_index(name='Revenue Summation for each campaign').sort_values(by='Revenue Summation for each campaign',ascending=False).head(5)
rev10
| campaign | Revenue Summation for each campaign | |
|---|---|---|
| 2 | KAM_DE_VM_2003_Sales Challenge_Groups Akquise | 487163.42 |
| 5 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 437027.22 |
| 27 | TS_DE_VM_1910_Sales Challenge | 301415.83 |
| 9 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 298269.15 |
| 28 | TS_DE_VM_1910_Sales Challenge_TEST | 255215.02 |
rev11=revenue3['Total'].groupby(revenue3['campaign']).sum().reset_index(name='Revenue Summation for each campaign').sort_values(by='Revenue Summation for each campaign',ascending=False).head(5)
rev11
| campaign | Revenue Summation for each campaign | |
|---|---|---|
| 2 | KAM_DE_VM_2003_Sales Challenge_Groups Akquise | 487163.42 |
| 5 | KAM_DE_VM_2003_Sales Challenge_Single Locations | 437027.22 |
| 27 | TS_DE_VM_1910_Sales Challenge | 301415.83 |
| 9 | KAM_DE_VM_2008_Vollgas mit AutoScout24 | 298269.15 |
| 28 | TS_DE_VM_1910_Sales Challenge_TEST | 255215.02 |
ana hena rasmt column bar chart lel mot3'ier rev11 we 7atet fel x el 3amod el nusy 'campaign' we 7atet fel y el 3amod el rakmy "Revenue Summation for each campaign" we 3amlt label lel columns 7agmo 0.2s we 5alet 3ard el chart 1200 we 5alet ertfa3 el chart 600 we 3amlt title lel chart esmo "The optimal campaigns for increasing customer size"¶
text_auto='' : da bi3mel label lel columns fa ana 3amlt label 7agmo .2s¶
title'' : da bi3mel title lel chart fa: ana hena 3amlt title lel chart we katbt feh Top 5 campaigns duo to revenue¶
width= : da bi3mel somk aw 3ard mo3ian lel bars fa ana 3amlt hena 3ard el bars 1200¶
height= : da bi3mel ertfa3 aw tol mo3ian lel bars fa ana 3amlt hena tol el bars 600¶
px.bar(rev11,x='campaign',y='Revenue Summation for each campaign',text_auto='.2s',width=1200,height=600,title='Top 5 campaigns duo to revenue')